问题:接收json数组报错使用JSON.parse()方法将数据(字符串)转化js对象
问题:
在后端传给前端数据(JSON数组)时,JS通过Jquery遍历JSON数组时报以下异常:
JS:
var a = "[{\"id\":\"1\",\"name\":\"Jsck\"},{\"id\":\"2\",\"name\":\"Array\"}]";
$.each(a,function (i,value) {
console.log(value);
})
Error:
Uncaught TypeError: Cannot use 'in' operator to search for 'length' in [{"id":"1","name":"Jsck"},{"id":"2","name":"Array"}]
at isArrayLike (jquery.js:528)
at Function.each (jquery.js:359)
at test.html?_ijt=tkj0ksfomg7p7vvakpi2jlssuv&_ij_reload=RELOAD_ON_SAVE:15
解决方法:
在JS中需要用JSON中的parse()方法将JSON数组或JSON对象转换成JS对象在使用Jquery中的earch()方法遍历就不会报错了。
var a = "[{\"id\":\"1\",\"name\":\"Jsck\"},{\"id\":\"2\",\"name\":\"Array\"}]";
//使用JSON中的parse()方法将JSON转换成JS对象
$.each(JSON.parse(a),function (i,value) {
console.log(value);
})
原因:
具体原因我也不知道,如果有大神看到此文章并且知道原因,请不惜赐教。