PHP解码嵌套的JSON

时间:2010-08-24 10:03:15

标签: php json facebook

我有一个嵌套的JSON代码(它实际上是我的facebook状态更新)

{
   "data": [
      {
         "id": "1290561400000000",
         "from": {
            "name": "My name",
            "id": "500920000"
         },
         "message": "Message body",
         "updated_time": "2010-08-24T08:22:13+0000",
         "comments": {
            "data": [
               {
                  "id": "129056140474641_8000",
                  "from": {
                     "name": "name1",
                     "id": "100000486072000"
                  },
                  "message": "hahahahahahha..........",
                  "created_time": "2010-08-24T08:40:39+0000"
               },
               {
                  "id": "129056140474641_8000000",
                  "from": {
                     "name": "name2",
                     "id": "1597542457"
                  },
                  "message": "true ya. I have updated",
                  "created_time": "2010-08-24T08:59:53+0000"
               },
               {
                  "id": "129056140474641_83000",
                  "from": {
                     "name": "Name3",
                     "id": "1000004860700000"
                  },
                  "message": "am putting it on my wall....",
                  "created_time": "2010-08-24T09:01:25+0000"
               }
            ],

         }
      }
]

现在如何访问特定更新的注释并通过循环打印? (我正在检索同时说几个更新)。

2 个答案:

答案 0 :(得分:19)

使用json_decode()

$decoded = json_decode($json_string);
$comments = $decoded->data[0]->comments->data;
foreach($comments as $comment){
   $name = $comment->from->name;
   $message = $comment->message;
   //do something with it
}

答案 1 :(得分:2)

您可以使用json_decode函数将其转换为数组,然后使用foreach循环遍历数组。

$array = json_decode($json, true);

foreach($array as $key => $value)
{
  // your code....
}

json_decode的第二个选项是您是否要将其转换为数组。