无法从解析的JSON(Nodejs)中获取数据

时间:2017-07-14 02:46:43

标签: javascript node.js

我有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中的所有对象?

1 个答案:

答案 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循环,而不是第一个循环。