有没有类似于PHP的JSON_DECODE函数的Javascript函数?

时间:2013-02-20 11:16:52

标签: php jquery ajax json

我正在使用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数据的方法。谢谢!

5 个答案:

答案 0 :(得分:9)

使用此

var obj = jQuery.parseJSON(json_data);

它将解码json_data

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

答案 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工具检查您的对象。