【发布时间】:2016-08-23 06:49:00
【问题描述】:
我一直在尝试解析嵌套的 JSON 数据,下面是我的代码
var string = '{"key1": "value", "key2": "value1", "Key3": {"key31":"value 31"}}';
var obj = JSON.parse(string);
console.log(obj.key1)
console.log(obj[0]);
这是输出
$ node try.js
value
undefined
为什么我的 obj[0] 未定义?在这种情况下如何获取值,以及嵌套键key31?
更新 现在在@SergeyK 和其他人的帮助下,我将上面的代码修改如下
var string = '{"key1": "value1", "key2": "value2", "key3": {"key31":"value 31"}}';
var obj = JSON.parse(string);
var array = Object.keys(obj)
for (var i = 0; i < array.length; i++) {
console.log(array[i], obj[array[i]]);
}
输出如下
$ node try.js
key1 value1
key2 value2
key3 { key31: 'value 31' }
但是对于{"key31":"value 31"},我将如何访问密钥key31 并获取其值value 31?
【问题讨论】:
-
您希望
obj[0]有什么价值? -
它是一个散列,而不是一个数组。当您写
obj[0]时,您期望什么? -
JSON Objects (
{ ... }) 使用基于键的索引,这意味着如果你想获得"value",你需要通过它的键来引用它:obj["key1"]或obj.key1,在使用 Arrays 时只能使用数字索引:[ .. ]
标签: javascript json node.js nested