2012-12-10 138 views
1

它存儲在MongoDB內部並傳遞到我的查看文件與json_decode.如何在PHP中解析這個JSON?

使用PHP,我怎麼能從內部獲取值?

"environment" : { 
      "_id" : "QU", 
      "name" : "QA Unstable", 
      "streams" : "unstable", 
      "hosts" : [ 
        "deployclient1", 
        "deployclient2" 
      ] 
} 
+4

的print_r(json_decode( $海峽,真)); ? – 2012-12-10 21:16:14

+0

您的JSON片段格式不正確。你需要用大括號將它括起來 – JavaKungFu

+0

當使用MongoClient類(Mongo的PECL擴展)對MongoDB進行查詢時,該類會自動將數據反序列化爲一個PHP Array。 您可能會考慮將數據「環境」本身存儲爲Mongo內部的結構化數據,這樣您就不必顯式地調用json_decode。 –

回答

3

我們其實回答這個問題,因爲你已經知道的json_decode

使用PHP,我怎麼能從內部獲取值?

json_decode將JSON字符串評估到PHP(默認)一個對象,這意味着你可以使用基本的動態加入語法去你的價值觀,即獲得_id

$object->environment->_id; 

還是一個主持人:

$object->environment->hosts[0] 

,將返回:deployclient1

+0

謝謝!有人回答我的問題。 :-) – luckytaxi

4

使用$array = json_decode($json_string, TRUE);。如果您提供TRUE或第二個變量使它成爲數組,如果您省略它。

1

不要忘了換花括號中字符串...

$str = '{"environment" : { 
      "_id" : "QU", 
      "name" : "QA Unstable", 
      "streams" : "unstable", 
      "hosts" : [ 
        "deployclient1", 
        "deployclient2" 
      ] 
}}'; 

print_r(json_decode($str, true));