使用PHP解析这个奇怪的JSON
有谁能告诉我如何仅从“缩略图”的第一个子元素检索URL元素。以下是json:使用PHP解析这个奇怪的JSON,php,json,Php,Json,有谁能告诉我如何仅从“缩略图”的第一个子元素检索URL元素。以下是json: "thumbnail": [ { "height": "49", "url": "http://news.bbcimg.co.uk/media/images/69340000/jpg/_69340597_8hxs1hvy.jpg", "width": "66" }, { "height": "81", "url":
"thumbnail": [
{
"height": "49",
"url": "http://news.bbcimg.co.uk/media/images/69340000/jpg/_69340597_8hxs1hvy.jpg",
"width": "66"
},
{
"height": "81",
"url": "http://news.bbcimg.co.uk/media/images/69340000/jpg/_69340598_8hxs1hvy.jpg",
"width": "144"
}
]
请帮忙,我已经尝试了从stdClass到JSON解析的所有方法,但似乎都没有成功。谢谢
[编辑]:
上面的json是一个大型json rss提要的摘录。我已经成功地将json uptill解析为这个缩略图节点,如下所示:
$decoded_json->query->results->item->thumbnail
其中$decoded_json是在json文件的根上应用json_decode()
函数后获得的对象。现在如何通过此缩略图
部分进行操作?使用
如果json文件太大,可能会达到递归限制。5.3中的默认值为512,5.2.3中的默认值为128,以前版本中的默认值为20。可以将递归深度设置为第三个参数
json_decode($JsonString,false,1024);
第二个参数是布尔值,如果要创建关联数组,则为true;如果要创建stdClass对象,则为false(默认值)
[编辑]
若要通过缩略图,请执行$decoded_json->query->results->item->缩略图[0]->url
,因为缩略图是一个数组,所以只需按此方式访问它即可。
很可能你会想像这样绕过去
foreach($decoded_json->query->results->item->thumbnail as $thumbnail) {
echo $thumbnail->url;
}
$var=json\u decode($your\u json);echo$var['thumbnail'][0]['url']代码>实际上这是一个大json文件的内部部分。树是这样的:$decoded_json->query->results->item->thumbnail@cale_b应该是$var['thumbnail'][0]->url
,除非将true
作为第二个参数传递,该参数告诉它创建关联数组而不是stdClass。echo json\u decode($your\u json,true)['thumbnail'][0]['url'];
将在最新版本中工作;)若要通过缩略图,请执行$decoded_json->query->results->item->thumbnail[0]->url
,因为缩略图是一个数组,只需访问它本身即可。您编辑的部分包含解决方案。非常感谢:)
foreach($decoded_json->query->results->item->thumbnail as $thumbnail) {
echo $thumbnail->url;
}