在Nodejs中解析嵌套的JSON [英] Parsing nested JSON in Nodejs

查看:913
本文介绍了在Nodejs中解析嵌套的JSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试解析嵌套的JSON数据,下面是我的代码

I have been trying to parse nested JSON data and below is my code

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

Why I am getting undefined for obj[0]? How to get value in this case, and also for nested key key31?

更新
现在在@SergeyK和其他人的帮助下,我修改了上面的代码,如下所示

Update Now with the help from @SergeyK and others, I have modified my above code as follows

    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},如何访问Key'key31'并获取其值'value 31'

But for {"key31":"value 31"}, how do I access Key 'key31' and get its value 'value 31'

推荐答案

您无法通过索引访问命名对象属性。您可以使用 obj [Object.keys(obj)[0]]

You just can't access named object property by index. You can use obj[Object.keys(obj)[0]]

编辑:

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

As @smarx explained in the comments, this answer is not suitable for direct access to the specific property by index due to Object.keys is unordered, so it is only for cases, when you need to loop keys/values of object.

示例:

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' }

这篇关于在Nodejs中解析嵌套的JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆