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中只有一个对象。