2016-09-27 80 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,我不知道如何處理這個輸出,我想遍歷所有的消息,並輸出cre每條消息的ated_time。

任何想法?

編輯:我試過:echo $myPosts['data'][message];Parsing JSON file with PHP,但我有:「未定義的指數:消息」。這就是爲什麼我發佈了一個新問題。

+1

的可能的複製。 com/questions/4343596 /解析-json-file-with-php – Marcs

+0

如果你想使用這些值比使用循環。 – devpro

+0

我試圖使用循環,但我沒有想出如何提取數據數組。 我用thid: \t'foreach($ aposts ['data'] as $ item) \t { \t echo「items:」。 $ item ['message']。「\ n」; \t}' 但出現錯誤。 – Bill

回答

1

json_decode第二個參數接通結果到關聯數組:

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

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

在不使用第二個參數的解碼返回對象:HTTP://計算器

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

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

我測試了第一個,它的工作原理!但我不知道爲什麼我得到這個錯誤:'注意:未定義的索引:在第131行的C:\ wamp64 \ www \ ctest.php中的消息' 對於第二個,我得到了這個:'注意:未定義的屬性:stdClass :: $消息在C:\ wamp64 \ www \ ctest.php在第138行# – Bill

+0

也許不是所有的帖子都有消息..你應該在顯示之前檢查帖子是否有消息 –

+1

這是真的。非常感謝 ! – Bill