如何使用json_decode访问嵌套的json对象

时间:2015-12-29 21:58:24

标签: php arrays json object

我用json格式解析了api请求,并使用了这个

的php函数json_decode
$obj = json_decode($json);

其中$json是我的json响应。我可以轻松地用

回显页码
echo "Page number: ".$obj->{'data'}->{'page_number'}."</br>";

我想回复一下imdb代码。我试过这样但没有任何表现。

echo "IMDB Code: ".$obj->{'data'}->{'movies'}->{'imdb_code'}."</br>";

这是我的json回复

{
"status":"ok",
"status_message":"Query was successful",
"data":{
   "movie_count":1,
   "limit":1,
   "page_number":1,
   "movies":[
      {
      "id":4839,
      "url":"https:\/\/yts.ag\/movie\/the-walk-2015",
      "imdb_code":"tt3488710",
      "title":"The Walk",
      "title_english":"The Walk",
      "title_long":"The Walk (2015)",
      "slug":"the-walk-2015",
      "year":2015,
      "rating":7.6,
      "runtime":123,

有任何建议吗?

1 个答案:

答案 0 :(得分:0)

因为json movies是一个数组,它包含几个(?)对象,而不是一个Object本身, 所以你需要像这样访问它:

echo "IMDB Code: ".$obj->{'data'}->{'movies'}[0]->{'imdb_code'}."</br>";

但是没有必要在'中封装属性名:

echo "IMDB Code: ".$obj->data->movies[0]->imdb_code."</br>";

请注意,这会通过索引0仅返回/回显电影的第一个。 对于其他电影,你需要遍历那些电影阵列。