Javascript 每个循环中都有json错误的jQuery

Javascript 每个循环中都有json错误的jQuery,javascript,jquery,Javascript,Jquery,我有一些建议: {id: 10, attr_id: 0, value: "1", extra: null, created_at: "2018-06-05 11:23:34", …} {id: 11, attr_id: 0, value: "2", extra: null, created_at: "2018-06-05 11:23:50", …} {id: 12, attr_id: 0, value: "3", extra: null, created_at: "2018-06-05 11:2

我有一些建议:

{id: 10, attr_id: 0, value: "1", extra: null, created_at: "2018-06-05 11:23:34", …}
{id: 11, attr_id: 0, value: "2", extra: null, created_at: "2018-06-05 11:23:50", …}
{id: 12, attr_id: 0, value: "3", extra: null, created_at: "2018-06-05 11:24:06", …}
所有这些JSON都在每个函数上

$.each(result, function(index, value) { 
      console.log(value); //I get jsons, which up
      $.each(value, function(i, val) {
         console.log(val.id); //Uncaught TypeError: Cannot read property 'id' of undefined
      });
});
我得到一个错误:

Uncaught TypeError: Cannot read property 'id' of undefined.
我怎样才能解决这个问题

更新

我不需要每秒钟做一次。我只需要写value.id。
一切正常,但我只得到第一个目标。如何获取所有对象?

您的Json格式不正确,应该如下所示:

var result=[{id:10,attr\u id:0,值:“1”,额外值:null,创建于:“2018-06-05 11:23:34”},
{id:11,attr_id:0,值:“2”,额外值:null,创建于:“2018-06-05 11:23:50”},
{id:12,attr_id:0,值:“3”,额外值:null,创建于:“2018-06-05 11:24:06”});
$.each(结果、函数(索引、值){
console.log(value.id);
});

为什么需要jQuery来实现这一点,只需使用vanilla Javascript即可:

result.forEach(value => {
    console.log(value);
    if ("id" in value) {
      console.log(id + ": " + value[id]);
    }
});

和平。

原因是结果是数组类型,而值是Object类型。如果目的只是在每行中查找id,则不需要内部each循环

    $.each(result, function(index, value) { 
       console.log(value.id); 
        });

否则,您需要将值(对象类型)转换为数组类型。

这不是有效的json格式。只有在将json字符串解析为json并将其转换为js对象后,才能对json字符串使用jquery

($.parseJSON(json_string))
但是,由于您的sting不是有效的json字符串,您无法将其解析为json,因此会出现TypeError

正确的json字符串应该是:

'[{"id": 10, "attr_id": 0, "value": "1", "extra": null, "created_at": "2018-06-05 11:23:34"}, {"id": 10, "attr_id": 0, "value": "1", "extra": null, "created_at": "2018-06-05 11:23:34"}]'

您不能在json中使用文本或标识符,它是由字符串组成的字符串。

如果
value
正是您发布的内容,那么它根本不是json您的问题中没有json。请阅读我想看看您是如何复制JSON的,请使用调试器检查变量中的内容。JSON是正确的,这里的“value”变量本身就是您的对象,因此不需要使用第二个循环。我尝试执行JSON.parse(value)。我得到错误:
位置1处JSON中意外的标记o
请阅读,如果您的JSON是数组或列表类型,那么它的格式应该像var jsonData=[];[]将包含对象列表。比如{id:1,Name:'name1'},{id:2,Name:'name2'}。因此,在您的例子中,json数据应该是[{id:1,Name:'name1'},{id:2,Name:'name2'}],所以您希望获得所有value.id,对吗?。你们运行过我答案的代码片段了吗。您应该获得所有id(10,11,12)。如果您没有获得全部Id,则意味着您的json不是多个对象的集合,或者结果json中只有一个对象。