2010-08-24 21 views
6

Tengo un código JSON como anidado (en realidad mis actualizaciones de estado de Facebook)PHP anidado JSON

{ 
    "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" 
       } 
      ], 

     } 
     } 
] 

Ahora ¿Cómo accedo a los comentarios para una actualización de concreto e imprimirlo a través de un bucle ?? (Estoy recuperando decir un par de actualizaciones al mismo tiempo).

Respuesta

16

Uso 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 
} 
2

Puede usar la función json_decode para convertirla a una matriz y luego iterar sobre la matriz usando foreach loop.

$array = json_decode($json, true); 

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

La segunda opción para json_decode es si desea o no para convertirlo en una matriz.