2017-09-07 47 views
2

我試圖從PHP中提取this JSON file中的一段數據,特別是post -> virtuals -> previewImage -> imageId。我可以訪問任何東西到previewImage水平,但由於一些未知的原因,我不能點到爲止:無法訪問超過第三個嵌套級別的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代替。

我曾嘗試使用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字符串返回從服務器?你有迴應嗎?

+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