我有以下JSON:
{"title":"MYTITLE","employer":"MYEMPLOYER","weekends":[["6"],["8"],["15"]]}
我需要访问周末才能获得这个:
6
8
15
这是我的尝试:
var json = $.parseJSON(data);
for (var i = 0, len = data.weekends.length; i < len; i++) {
console.log(data.weekends[i]);
}
但是结果在铬控制台日志中是空的...如果我理解正确...我读取转换为数组的 JSON 长度,对于循环,我读取索引数组中的值。
但我总是收到错误:
未捕获的类型错误:无法读取未定义的属性"长度">
为什么周末长度未定义?我设置了命令长度,但它无法识别它是一个数组并计算长度,以便 for 循环可以工作。
问题是您使用 data
访问周末,这只是原始的 JSON 字符串。您需要访问 json
变量,即解析的 JSON。
以下是工作代码:
const data = {"title":"MYTITLE","employer":"MYEMPLOYER","weekends":[["6"],["8"],["15"]]};
// To avoid calculation of length on every iteration
const weekendLength = data.weekends.length;
for(let i = 0; i < weekendLength; i++){
console.log(data.weekends[i][0]);
}
在这里,我将 JSON 数据直接设置为变量。在您的情况下,您很可能是从网络请求中获取数据。在这种情况下,就像在代码中所做的那样,您需要先解析它。(通过致电$.parseJSON()
(
var data = {"title":"MYTITLE","employer":"MYEMPLOYER","weekends":[["6"],["8"],["15"]]};
for (var i = 0, len = data.weekends.length; i < len; i++){
console.log(data.weekends[i]);
}