我目前有一个我的程序动态创建的JSON对象。该对象有效,可以使用JSON.parse()进行解析。
这是我正在使用的对象:
{
"1":
{
"name":"temporary",
"value":"5"
},
"2":
{
"name":"temporary 2",
"value":"10"
}
}
我尝试使用的代码是:
var obj = JSON.parse(StringObj);
var count = Object.keys(obj).length;
for(var i = 0; i < count; i++){
console.log(obj[i].name + ": " + obj[i].value);
}
但是,这会在控制台中引发错误:
obj[i] is undefined
我在这里做错了什么?我之前已经在不同的应用程序中完成了这一千次,但是无法弄清楚为什么它这次没有工作。
答案 0 :(得分:3)
for
循环从0
开始,但密钥为1
和2
。您需要从1
循环:
var obj = {
"1": { "name": "temporary", "value": "5" },
"2": { "name": "temporary 2", "value": "10" }
}
var count = Object.keys(obj).length;
for (var i = 1; i <= count; i++) {
console.log(obj[i].name + ": " + obj[i].value);
}
或者,您可以通过在键上使用forEach()
循环来避免此问题:
var obj = {
"1": { "name": "temporary", "value": "5" },
"2": { "name": "temporary 2", "value": "10" }
}
Object.keys(obj).forEach(function(key) {
console.log(obj[key].name + ": " + obj[key].value);
});