在jquery问题中解析json

时间:2013-04-08 06:01:09

标签: jquery json parsing

我有一个简单的json,我想用jquery解析它。这是我的代码 我正在使用parseJSON但它在jquery

中不起作用
var json = '['+{"lead_req_id":"","listing_id_1_ref":"RH-R-17","listing_id_1":"17"}+']';

当我提醒json它给我[对象] [对象]

var getReq = jQuery.parseJSON(json);//i tried json[0] also but no luck
$.each(getReq, function(id, key) {

    alert(key+'='+id);
});

我想逐个遍历它。

这里我什么都得不到?

3 个答案:

答案 0 :(得分:3)

您在此处显示的不是JSON字符串。以下是有效JSON字符串的外观:

var json = '[{"lead_req_id":"","listing_id_1_ref":"RH-R-17","listing_id_1":"17"}]';

现在你可以解析它了:

var getReq = jQuery.parseJSON(json);
$.each(getReq, function(index, element) {
    $.each(element, function(key, value) {
        console.log(key + '=' + value);    
    });
});

如果另一方面你已经有一个javascript变量,那么你不需要解析任何东西,你可以直接访问它:

var getReq = [{"lead_req_id":"","listing_id_1_ref":"RH-R-17","listing_id_1":"17"}];
$.each(getReq, function(index, element) {
    $.each(element, function(key, value) {
        console.log(key + '=' + value);    
    });
});

另请注意,我使用了2 $.each个语句,因为您显示的JSON字符串表示一些对象的数组。第一个循环遍历数组,而内循环遍历数组中每个对象的属性。

答案 1 :(得分:1)

是的,你的json是错的。它评估为字符串"[[object Object]]",因为您要向JavaScript对象({} s中的部分)添加字符串“[”和“]”

尝试

var obj = [{"lead_req_id":"","listing_id_1_ref":"RH-R-17","listing_id_1":"17"}]

现在没有必要解析它。它已经是一个JavaScript对象了。

如果你想要它的JSON版本,可以在其上调用JSON.stringify:  结果如下:

 '[{"lead_req_id":"","listing_id_1_ref":"RH-R-17","listing_id_1":"17"}]'

答案 2 :(得分:0)

您的json格式无效。尝试将您的var json = ..更改为:

var json = '[{"lead_req_id":"","listing_id_1_ref":"RH-R-17","listing_id_1":"17"}]';

http://jsfiddle.net/28UrL/1/

相关问题