2012-09-15 31 views
0

解決這個錯誤有關stdClass的這是我的代碼:我如何在PHP

$array = array(
"Birds" => 
array(
'group' => 1, 
"Bird" => array(

array('id' => 1, 'img' => "img1.png", 'title' => "kate"), 
array('id' => 2, 'img2' => "img2.png", 'title' => "mary") 
))); 


$json = json_encode($array); 
echo json_decode($json); 

輸出爲:

//JSON OUTPUT {"Birds":{"group":1,"Bird":[{"id":1,"img":"img1.png","title":"cardinal"},{"id":2,"img2":"img2.png","title":"bluejay"}]}} 

類stdClass的的對象無法轉換爲字符串

+0

請問這個問題可以更清楚些嗎? – FluffyJack

+1

'echo'會在打印它們之前嘗試將它的參數轉換爲字符串,這對數組來說效果不佳,對某些對象完全不起作用。目前還不清楚你的目標是什麼,但是如果你想檢查解碼的對象,你可以使用'var_dump'或'var_export'而不是'echo'。 – DCoder

+0

嘗試print_r($ json)。並檢查它顯示輸出的方式。 –

回答

0

你要通過json_decode是真正的第二個參數,這些參數的更多信息:http://php.net/manual/en/function.json-decode.php

所以你echo json_decode($json);應該改成這樣:

print_r(json_decode($json, true)); 

echo改變爲print_r由於輸出是一個數組不是字符串...

+0

它工作正常,出「真」。 – sebi

+0

如果沒有,你會收到一個stdClass對象作爲輸出,真正的你會收到一個數組,這是不同的,你可以更容易地處理數組,你可以回顯它(你會看到數組,但你不會收到錯誤了)... – Night2

0

使用var_dump查看變量呼應您的變量轉換爲字符串,而它的對象。你也可以添加第二個參數到json_decode($data, true)來獲得數組而不是對象,因爲我認爲這是你想要的,因爲輸入是數組。

關於對象皈依字符串您可以閱讀 __toString