Javascript json array values



我有以下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]);
}

最新更新