2017-09-07 6 views
2

PHPのthis JSON file(具体的にはpost -> virtuals -> previewImage -> imageId)のデータを抽出しようとしています。私はpreviewImageのレベルには何もアップアクセスできますが、いくつかの未知の理由のために私はそれを越えて行くことはできません。3番目の入れ子レベルを超えてJSONファイルのデータにアクセスできません

$data = @file_get_contents("https://medium.com/".$publication_name."/latest?format=json"); 
$data = str_replace("])}while(1);</x>", "", $data); 
$json = json_decode($data); 
$posts = $json->payload->posts; 
foreach($posts as $post) { 
    echo $post->virtuals->previewImage->imageId; 
    ... 

...何もエコーません。私は例えば/ $post->virtuals->subtitleを得ることができます。しかし、virtualsの中には何も返されません。なぜ地球上で?ペイロードの

スクリーンショット:

enter image description here

+0

PHPでJSON文字列をどのようにデコードしましたか? 'json_decode($ JSNstr、true)'を使ってオブジェクトを配列ではなく構造体に変換しようとしましたか? – cars10m

答えて

1

あなたの代わりにJSONobj->payload->posts[0]->virtuals->previewImage->imageIdに対処する必要がありには 'ポスト' はありません。

$jsn2=json_decode($jsnstr); 
echo $jsn2->payload->posts[0]->virtuals->previewImage->imageId."\n"; 

$jsn=json_decode($jsnstr,true); 
echo $jsn['payload']['posts'][0]['virtuals']['previewImage']['imageId']; 

どちらのリターン:あなたは完全なJSON文字列をバック持っていることを確認してください

1*WMPzz4dBjNY7iPB0u2Y3Aw.png 

です

は、私が使用してjson_decodeの両方のバージョンを試してみましたサーバーから?あなたはそれをエコーし​​ましたか?

+0

downvoterは説明してください、なぜですか? – cars10m

+0

作品、ありがとう:)(私はdownvoter btwではなかった!) – drake035

1

https://eval.in/857307

$object->posts[0]->virtuals->previewImage->imageId; 

変数 "ポスト" アレイです。

+0

私のコードでは$ json-> posts [0] - > virtuals-> previewImage-> imageIdではないでしょうか? (これは常に空であるため) – drake035

関連する問題