2012-11-02 204 views
0

我想學習如何從PHP返回的json obj中檢索數據,但我無法弄清楚如何獲取值。我的數據看起來是這樣的:從json通過jquery獲取數據

[{"user_name":"herp"},{"email":"[email protected]"},{"yy":"yyyy"},{"mm":"mm"},{"dd":"dd"}] 

我的客戶端腳本看起來是這樣的:

 $.ajax({ 
     type : 'POST', 
     url : 'serverside/get_installningar.php', 
     dataType : 'json', 
     success : function(data) { 

     } 
    }); 

我想鍵入類似data.user_name檢索USER_NAME等。但是有沒有一種方法可以做到這一點?我在論壇上看過,但找不到正確的東西。

回答

5

你有什麼是對象的數組,所以你會需要知道它在哪裏得到user_name

data[0].user_name 

請參閱下面的結構細節,

[ 
{"user_name":"herp"}, // <-- data[0] 
{"email":"[email protected]"}, // <-- data[1] 
{"yy":"yyyy"}, // <-- data[2] 
{"mm":"mm"}, // <-- data[3] 
{"dd":"dd"}  // <-- data[4] 
] 

由於AndrewR指出,

這將起作用,但最好修復來自PHP的JSON格式。 {"user_name":"herp","email":"[email protected]","yy":"yyyy","mm":"mm","dd":"d‌​d"}然後他原來的計劃將工作。

+0

這是正確的答案。 – MacMac

+3

這會起作用,但修復來自PHP的JSON格式會更好。 '{「user_name」:「herp」,「email」:「[email protected]」,「yy」:「yyyy」,「mm」:「mm」,「dd」:「dd」}和那麼他原來的計劃將會奏效。 – AndrewR

+0

是啊,你是對的 - 這是更好:) – user1432962

0

這樣使用它:

console.log(data[0].user_name); 

爲了您的JSON的一個簡單的存取權限的成員,試圖在一個不錯的格式,虛擬化,所以你能理解,你有數組,在那裏你有對象。

[]裝置陣列

{}手段對象

我推薦鉻擴展:JsonView

並且例如,採取JSON請求等this

只需在選項卡中打開它,它將很好地形成。 此外,它顯示您在左下角如何訪問你正在盤旋。

+1

否; jQuery爲你做。 – SLaks

+0

dataType:'json'在ajax調用中就足夠了。但是console.log(data [0] .user_name);是我一直在尋找的!乾杯! – user1432962

0

使用data.parseJSON();。它完全按照你想要的方式返回一個對象。

+0

編號jQuery已經爲你做了它,因爲'dataType'是'json',它將在返回給你之前解析JSON。 – MacMac

+0

錯過了dataType。抱歉! –

0

你實際上是返回一個數組不是一個JSON對象

你的數據需要看起來像這樣:

{{"user_name":"herp"},{"email":"[email protected]"},{"yy":"yyyy"},{"mm":"mm"},{"dd":"dd"}} 

嘗試安裝Firebug的調試自己的網頁,如果它的格式正確的JSON的返回值。