我如何读取此JSON字符串?

时间:2010-11-03 17:59:19

标签: asp.net jquery json

我从ASP.Net webservice获取此JSON字符串:

{"d":{"Table":[{"col1":123,"col2":"name","col3":"name","col4":100,"col5":"\/Date(1153033200000)\/"},{"col1":123,"col2":"name","col3":"name","col4":101,"col5":"\/Date(1153033200000)\/"},{"col1":123,"col2":"name","col3":"name","col4":102,"col5":"\/Date(1153033200000)\/"}]}}

在我的jQuery中,如何引用Table代码以便循环访问数据?

msg.d [i] .col1

我错过了什么? msg.d.table [I]?

4 个答案:

答案 0 :(得分:2)

msg.d是一个对象。 msg.d.Table会给你你想要的东西。

迭代:

$.each(msg.d.Table, function(row) {
  // Get specific value:
  window.alert(row.col1);
  // Iterate through all columns:
  $.each(row, function(column, value) {
    // Do something..
  });
});

答案 1 :(得分:2)

属性d是一个包含属性Table的对象,该属性是包含属性col1的对象数组。

因此,您使用msg.d.Table访问数组,msg.d.Table[i]访问数组中的项目,msg.d.Table[i].col1访问项目中的属性。

请注意,Javascript具有大小写性,因此msg.d.Table有效,msg.d.table不会。

这将获取数组并循环遍历它:

var tableArray = msg.d.Table;
$.each(tableArray, function(){
  alert(this.col1);
});

答案 2 :(得分:1)

$.each(msg.d.Table, function(i, val) {
   alert(val.col1);
});

我希望这有帮助!

答案 3 :(得分:0)

您可以使用jQuery的JSON解析器:

data = jQuery.parseJSON(JSON_DATA);

然后通过数据变量直接引用对象:

data.my_property