1

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

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

当我提醒 json 它给我 [object] [Object]

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

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

我想一一遍历。

在这里我什么都得不到?

4

3 回答 3

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 字符串表示一些对象的数组。第一个循环遍历数组,而内部循环遍历数组中每个对象的属性。

于 2013-04-08T06:04:23.210 回答
1

是的,你json错了。它计算为字符串"[[object Object]]",因为您将字符串“[”和“]”添加到 JavaScript 对象({} 中的部分)

尝试

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"}]'
于 2013-04-08T06:03:28.190 回答
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/

于 2013-04-08T06:11:21.247 回答