Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何访问JSON数组格式的字符串_Jquery_Json - Fatal编程技术网

Jquery 如何访问JSON数组格式的字符串

Jquery 如何访问JSON数组格式的字符串,jquery,json,Jquery,Json,我有一个asp.net页面,它将对象列表作为json字符串返回给ajax请求。字符串如下所示: [ {"Name":"Don","Age":23,"Description":"Tall man with no glasses"} ,{"Name":"Charlie","Age":24,"Description":"Short man with glasses"} ] 我想单独访问每个字段,如姓名、年龄、描述等 我该怎么做?我使用JQuery编写客户端脚本 为了进一步澄清,这里是

我有一个asp.net页面,它将对象列表作为json字符串返回给ajax请求。字符串如下所示:

[
    {"Name":"Don","Age":23,"Description":"Tall man with no glasses"}
    ,{"Name":"Charlie","Age":24,"Description":"Short man with glasses"}
]
我想单独访问每个字段,如姓名、年龄、描述等

我该怎么做?我使用JQuery编写客户端脚本

为了进一步澄清,这里是服务器端C代码-


现在,如果我自己不使用“eval”,那么如何从服务器端传递arraylist,然后使用javascript解析它呢?

假设您已经拥有persons数组,那么可以使用该方法循环元素:

var persons = [
    {"Name":"Don","Age":23,"Description":"Tall man with no glasses"},
    {"Name":"Charlie","Age":24,"Description":"Short man with glasses"}
];

$(persons).each(function(index, person) {
    alert('Name: ' + person.Name + 
          ' Age: ' + person.Age + 
          ' Description: ' + person.Description
    );
});

假设您已经拥有persons数组,您可以使用该方法在元素之间循环:

var persons = [
    {"Name":"Don","Age":23,"Description":"Tall man with no glasses"},
    {"Name":"Charlie","Age":24,"Description":"Short man with glasses"}
];

$(persons).each(function(index, person) {
    alert('Name: ' + person.Name + 
          ' Age: ' + person.Age + 
          ' Description: ' + person.Description
    );
});

您可以要求jQuery自动解析JSON并返回JavaScript对象而不是字符串:

var people = $.getJSON('http://example.com/path/to/page');
如果要使用
POST
而不是
GET
,可以提供数据类型作为第四个参数:

$.post("Default.aspx", {field1: $("#field1").val()}, function(data) { ... }, "json");
然后,您可以像访问普通对象一样访问它:

$.each(people, function(function (i, person) {
    $('#people').append($('<p>').text(person.Name));
}
$。每个(人,功能)(功能(i,人){
$(“#people”).append($(“”).text(person.Name));
}

您可以要求jQuery自动解析JSON并返回JavaScript对象而不是字符串:

var people = $.getJSON('http://example.com/path/to/page');
如果要使用
POST
而不是
GET
,可以提供数据类型作为第四个参数:

$.post("Default.aspx", {field1: $("#field1").val()}, function(data) { ... }, "json");
然后,您可以像访问普通对象一样访问它:

$.each(people, function(function (i, person) {
    $('#people').append($('<p>').text(person.Name));
}
$。每个(人,功能)(功能(i,人){
$(“#people”).append($(“”).text(person.Name));
}

我建议您避免自己调用
eval
方法。如果您使用jQuery执行AJAX查询,它将处理表示JSON编码对象的服务器响应到对象本身的转换。我尝试自己不使用“eval”。而是尝试使用“$.getJSON”但是当服务器返回JSON编码的字符串时,如果我尝试访问它,那么它会产生一些错误。我会给出服务器端代码以及整个客户端代码,以便进一步澄清。如果您想使用
$.post
并且仍然让jquery自动解析JSON,您可以通过第四个参数:
$.post(“Default.aspx”,{field1:$(“#field1”).val()},函数(数据){…},json”);
。我将更新我的答案以反映这一点。我建议您避免自己调用
eval
方法。如果您使用jQuery执行AJAX查询,它将处理表示JSON编码对象的服务器响应到对象本身的转换。我自己尝试不使用“eval”,而是尝试使用“$.getJSON"但是当服务器返回JSON编码的字符串时,如果我尝试访问它,那么它会产生一些错误。我会给出服务器端代码以及整个客户端代码,以便进一步澄清。如果您想使用
$.post
并且仍然让jquery自动解析JSON,您可以通过第四个参数:
$.post(“Default.aspx”,{field1:$(“#field1”).val()},函数(数据){…},json”);
。我将更新我的答案以反映这一点。我只需要第一部分,实际上,我的意思是如何将字符串转换为实际数组,但我自己管理它。但是你的答案教会了我一件我以前不知道的新事:使用jquery访问这样的列表。谢谢……)嗯,我只需要第一部分,实际上,我的意思是如何将字符串转换为实际数组,但我自己管理它。但是你的回答教会了我一件我以前不知道的新事情:使用jquery访问这样的列表。谢谢……:)这是我通常做的方式。这是我通常做的方式。