2016-09-27 3 views
-1

У меня есть декодированного массив JSON, который я получил от facebook API:Разбираем декодированного массив JSON в PHP

$Myposts = json_decode($response->getBody()); 

Когда я отпечатанные $ Myposts:

var_dump($Myposts); 

Он даваемое это:

object(stdClass)[16] 
    public 'data' => 
    array (size=24) 
     0 => 
     object(stdClass)[12] 
      public 'message' => string 'a mesagge..' (length=65) 
      public 'created_time' => string '2016-09-18T16:41:10+0000' (length=24) 
      public 'id' => string '111110037' (length=35) 
     1 => 
     object(stdClass)[28] 
      public 'message' => string 'How brave !' (length=11) 
      public 'story' => string 'XXX shared Le XX video.' (length=59) 
      public 'created_time' => string '2016-09-18T13:37:33+0000' (length=24) 
      public 'id' => string '102172976' (length=35) 

     23 => 
     object(stdClass)[50] 
      public 'message' => string '...a message..' (length=259) 
      public 'story' => string 'Bi added 3 new photos.' (length=33) 
      public 'created_time' => string '2015-12-11T20:54:21+0000' (length=24) 
      public 'id' => string '102191588' (length=35) 
    public 'paging' => 
    object(stdClass)[51] 
     public 'previous' => string 'https://graph.facebook.com/v2.7/XXXX&__paging_token=YYYY&__previous=1' (length=372) 
     public 'next' => string 'https://graph.facebook.com/v2.7/XXX/feed?access_token=DDDD&limit=25&until=XXX&__paging_token=XXXX' (length=362) 

Я новичок в php, и я не знаю, как справиться с этим выходом, я хотел бы пропустить все сообщения и вывести их ated_time каждого сообщения.

Любые идеи?

EDIT: Я пробовал: echo $myPosts['data'][message]; от Parsing JSON file with PHP, но у меня были: «Неопределенный индекс: сообщение». Вот почему я опубликовал новый вопрос.

+1

Возможный дубликат: HTTP: // StackOverflow. com/questions/4343596/parsing-json-file-with-php – Marcs

+0

, если вы хотите использовать эти значения, чем цикл использования. – devpro

+0

Я попытался использовать цикл, но я не понял, как извлечь массив данных. я thid: \t 'Еогеасп ($ aposts [ 'данные'], как $ п) \t { \t эхо "элементов:". $ item ['message']. "\ n"; \t} ' , но получил ошибку. – Bill

ответ

1

Второй параметр json_decode превращает результат в ассоциативный массив:

$myPosts = json_decode($response->getBody(), true); 

foreach ($myPosts['data'] as $post) { 
    var_dump($post['message']); 
} 

без использования второго параметра декодирования возвращает объекты:

$myPosts = json_decode($response->getBody()); 

foreach ($myPosts->data as $post) { 
    var_dump($post->message); 
} 
+0

Я проверил первый, он работает! но я не знаю, почему я получаю эту ошибку: 'Примечание: Неопределенный индекс: сообщение в C: \ wamp64 \ www \ ctest.php в строке 131' Для второго я получил следующее:' Примечание: Неопределенное свойство: stdClass :: $ message в C: \ wamp64 \ www \ ctest.php в строке 138' – Bill

+0

Возможно, не все сообщения имеют сообщение .. вы должны проверить, есть ли сообщение, перед его отображением –

+1

Это правда. Большое спасибо ! – Bill

Смежные вопросы