-2

我正在使用 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($data);

或者如果没有,请建议一种使用 jQuery AJAX 处理大型 JSON 数据的方法。谢谢!

4

5 回答 5

10

用这个

var obj = jQuery.parseJSON(json_data);

它将解码 json_data

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

于 2013-02-20T11:18:18.257 回答
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);
于 2013-02-20T11:21:30.350 回答
5

您可以使用该$.parseJSON()方法将 JSON 编码的字符串解析为相应的 javascript 对象。但是如果你正在向你的服务器执行一个 AJAX 请求并且数据来自它,你根本不需要使用这个方法,因为 jQuery 会自动解析传递给成功函数的结果:

$.ajax({
    url: '/somescript.php',
    dataType: 'json',
    success: function(result) {
        // result is already a parsed javascript object that you could manipulate directly here
    }
});

如果您正确编写服务器端脚本,以便将响应Content-TypeHTTP 标头设置为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
    }
});
于 2013-02-20T11:18:30.580 回答
0

jQuery.parseJSON方法可以做到这一点。

于 2013-02-20T11:19:29.267 回答
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" }]  

使用工具检查您的对象。

于 2013-02-20T11:43:07.107 回答