使用PHP解析这个奇怪的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":

有谁能告诉我如何仅从“缩略图”的第一个子元素检索URL元素。以下是json:

"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;
}