2011-05-12 85 views
2

爲json_decode的語法是:PHP json_decode:對象到關聯數組

mixed json_decode (string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]]) 

注意第二參數$assoc其是可選的,默認爲false。 當此參數爲true時,json_decode將對象轉換爲關聯數組。

我的問題是: 是否有每個案例你會不是想要將返回的對象轉換爲關聯數組?

+1

@Adrian這是關於PHP,而不是Javascript。 – dkamins 2011-06-06 19:00:43

+0

我會添加自定義方法來允許序列化和deserialisation(如Serializable接口)的JSON。這允許從對象的json和json中正確構造對象。 – Arend 2011-06-06 19:28:20

+0

@dkamins啊,愚蠢的我...謝謝指正:) – 2011-06-08 09:00:25

回答

2

當要它轉換爲對象...

5

在PHP如果函數返回一個關聯數組,你不能直接訪問其成員爲Foo()[「XXX」]。但是,如果它返回一個對象,你可以訪問成員爲foo() - > xxx。

+0

雖然這不再是真實的,它是當這個問題被張貼(當'json_decode()'寫),所以它是默認的一個很好的解釋值。 – 2017-03-14 17:14:43

0

就我個人而言,我總是會要求一個關聯數組,並且比$ assoc = false時返回的對象更容易處理。

但我可以說我已經看到了(主要是各種Web服務客戶端庫)大多數其他人的代碼已經使用json_decode與$ assoc命令=虛假和對象,而不是關聯數組。我認爲這主要是一個偏好問題,因爲我沒有看到選擇某種方式的特別強烈的理由。

對不起,非應答:-)

0

以我oppinion其一種方式來強調列表之間(在由數字數組表達的PHP)和一個實體(對象)之間的差。這可能更具可讀性,因爲可以讀取使用的訪問器([]->)訪問哪種數據。

-1

你需要通過與真實值一個額外的參數。 json_decode($ p,true);