Javascript json 数组值
2018-01-07
78
我有以下 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]);
}
但 chrome 控制台日志中的结果是空的...如果我理解正确的话...我读取了转换为数组的 json 的长度,并在循环中读取了索引数组中的值。
但我总是收到错误:
Uncaught TypeError: Cannot read property 'length' of undefined
为什么周末长度未定义?我设置了命令长度,但它无法识别它是一个数组,也无法计算长度,因此 for 循环无法工作。
2个回答
问题是您使用
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()
)
code
2018-01-07
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]);
}
Devang Patel
2018-01-07