无法访问第三个嵌套级别之外的JSON文件中的数据

时间:2017-09-07 15:09:38

标签: php json

我试图从PHP中this JSON file中提取一段数据,特别是post -> virtuals -> previewImage -> imageId。我可以访问previewImage级别的任何内容,但由于某些未知原因,我无法超越这一点:

$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;
  ...

......没有回音。我可以得到/ echo $post->virtuals->subtitle。但virtuals内的任何内容都不会返回任何内容。为什么到地球?

有效载荷的屏幕截图:

enter image description here

2 个答案:

答案 0 :(得分:1)

此处没有“帖子”,您需要代替JSONobj->payload->posts[0]->virtuals->previewImage->imageId

我尝试过使用json_decode的两个版本:

$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'];

两者都返回:

1*WMPzz4dBjNY7iPB0u2Y3Aw.png

您确定从服务器获得了完整的JSON字符串吗?你有没有回应过它?

答案 1 :(得分:1)

https://eval.in/857307

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

变量&#34;帖子&#34;是一个数组。