我正在使用jQuery AJAX加载我的部分网页。我的AJAX数据类型是HTML。我听说JSON更快,我也用过它。但是当数据有点大时,JSON似乎不起作用,例如:
数据很短时可以使用:
{"name" : "John Smith" , "age" : "32" , "status" : "married" }
{"name" : "Bella Gilbert" , "age" : "26" , "status" : "single" }
但是当数据有点大时:
{"name" : "John Smith" , "age" : "32" , "status" : "married" }
{"name" : "Bella Gilbert" , "age" : "26" , "status" : "single" }
{"name" : "Joseph Morgan" , "age" : "28" , "status" : "single" }
{"name" : "Paul Wesley" , "age" : "24" , "status" : "single" }
有没有办法可以在不将dataType作为JSON声明的情况下获取数据,然后使用javascript对其进行解码,类似于PHP的函数:
json_decode($数据);
如果没有,那么请建议一种使用jQuery AJAX处理大型JSON数据的方法。谢谢!
答案 0 :(得分:9)
答案 1 :(得分:8)
使用JSON.parse()
将JSON字符串转换为对象:
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);
document.write(contact.surname + ", " + contact.firstname);
// Output: Aaberg, Jesper
jquery版本:(Parses a JSON string.
)
var obj = jQuery.parseJSON('{"name":"John"}');
alert(obj.name);
答案 2 :(得分:5)
您可以使用$.parseJSON()
方法将JSON编码的字符串解析为相应的javascript对象。但是,如果您正在向服务器执行AJAX请求并且数据来自它,则您根本不需要使用此方法,因为jQuery将自动解析传递给success函数的结果:
$.ajax({
url: '/somescript.php',
dataType: 'json',
success: function(result) {
// result is already a parsed javascript object that you could manipulate directly here
}
});
如果您正确编写服务器端脚本,以便将响应Content-Type
HTTP标头设置为application/json
(您应该始终这样做),您甚至不需要向jQuery指示dataType
参数。 jQuery将分析此响应标头并自动为您解析结果:
$.ajax({
url: '/somescript.php',
success: function(result) {
// result is already a parsed javascript object that you could manipulate directly here
}
});
答案 3 :(得分:0)
jQuery.parseJSON方法可以做到这一点。
答案 4 :(得分:0)
您的json对象格式错误。应该是这样的:
[{"name" : "John Smith" , "age" : "32" , "status" : "married" },
{"name" : "Bella Gilbert" , "age" : "26" , "status" : "single" },
{"name" : "Joseph Morgan" , "age" : "28" , "status" : "single" },
{"name" : "Paul Wesley" , "age" : "24" , "status" : "single" }]
使用this工具检查您的对象。