2011-07-15 237 views
2

我有以下的JSON從一個AJAX調用返回:JSON數據訪問對象

{"rows":[{"Date":"07/10/2011","Value":1206,"Action":"Drink"},  
{"Date":"07/11/2011","Value":2288,"Action":"Pie"}, 
{"Date":"07/12/2011","Value":1070,"Action":"Drink"}, 
{"Date":"07/13/2011","Value":1535,"Action":"Beer"}, 
{"Date":"07/14/2011","Value":1721,"Action":"Drink"}], 
"page":1,"total":1,"records":5} 

我怎樣才能從使用jQuery這個結果值?

舉例來說,我想獲得的數據元素的第一行:

json.rows[0].date = 07/10/2011 
json.rows[0].value = 1206 

回答

3

有許多方法可以做到這一點,你可以使用eval(),但eval()函數通常被認爲是邪惡的,加上JSON是不是正是一樣在Javascript代碼中定義數據。我剛剛google了一下,這讓我想起jquery有一個parseJSON函數。

檢查出來。

http://api.jquery.com/jQuery.parseJSON/

但是,如果你使用jQuery的AJAX(很受歡迎),您可以設置數據類型爲JSON,這會爲你做它。

$.ajax(
    { 
      url: "/map", // should return JSON 
      dataType: 'json', 
      cache: false, 
      data: {}, 
      success: function(response) 
      { 
       // response is an object 

       alert(response.rows[0].Date); 

       cook(response); 
      } 
    }); 
+0

感謝您的迴應。我正在尋找使用AJAX,但只是想知道我如何實際獲得每一行數據作爲一個對象?即如果我上面的數據是「響應」,我只是'var obj = response;'然後使用'obj.rows [0] .Date'? – Tom

+0

是的,我想是的,我已經更新了我的答案,希望它能幫助你解決問題。 –

0
+0

感謝您的回覆。有點困惑如何使用這個?即如果我上面的數據是'數據',我只是'var obj = $ .parseJSON(data);'然後使用'obj.rows [0] .data'? – Tom

+0

不確定'$ .parseJSON',但是這個工作很好:'var obj = jQuery.parseJSON(yourData);警告(obj.rows [0] .Date);' – bezmax

+0

好的謝謝 - 並遍歷每一行?即我可以得到每一條數據 - 我將如何做到這一點? – Tom