我有JSON文件:
{
"Abilities": {
"ability_base": {
...
},
"some_data": {
...
},
}
}
解析它:
var obj = JSON.parse(fs.readFileSync('./npc_abilities.json'));
并尝试从中获取一些数据。我做了:
for (var key in obj) {
console.log(obj.Abilities.ability_base);
}
它显示来自"ability base" {...}
的数据,这是正确的行为。但是当我试图获得所有关键时,我的能力对象:
for (var key in obj) {
console.log(obj.Abilities[key]);
}
它告诉我" undefined"在控制台。为什么?如何获取Abilities中的所有对象?
答案 0 :(得分:2)
你正在迭代错误的对象。你可以试试这个
var obj = {
"Abilities": {
"ability_base": {
a: 1
},
"some_data": {
b: 2
},
}
};
// Iterating over obj
for (var key in obj) {
console.log("Key: ", key);
console.log(obj.Abilities[key]);
}
console.log("*****************************");
// Need to iterate over obj.Abilities
for (var key in obj.Abilities) {
console.log("Key: ", key);
console.log(obj.Abilities[key]);
}

注意两个案例中console.log
的{{1}}。我相信你需要第二个key
循环,而不是第一个循环。