2011-07-15 67 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