gpt4 book ai didi

javascript - 在 Nodejs 中解析嵌套的 JSON

转载 作者:搜寻专家 更新时间:2023-11-01 00:17:04 25 4
gpt4 key购买 nike

我一直在尝试解析嵌套的 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[Object.keys(obj)[0]]

编辑:

正如@smarx 在评论中解释的那样,由于 Object.keys 是无序的,因此此答案不适合通过索引直接访问特定属性,因此仅适用于需要的情况循环对象的键/值。

示例:

var string = '{"key1": "value", "key2": "value1", "Key3": {"key31":"value 31"}}';
var obj = JSON.parse(string);
var keysArray = Object.keys(obj);
for (var i = 0; i < keysArray.length; i++) {
var key = keysArray[i]; // here is "name" of object property
var value = obj[key]; // here get value "by name" as it expected with objects
console.log(key, value);
}
// output:
// key1 value
// key2 value1
// Key3 { key31: 'value 31' }

关于javascript - 在 Nodejs 中解析嵌套的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39094162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com