获得&使用JSON对象键名称

时间:2017-05-21 11:48:48

标签: javascript arrays json

我有一堆json文件,我需要阅读并保存为文本文件。问题是每个json文件中的键名称不同。我已经看到使用Object.keys函数来获取键名,但是,例如,在这样的文件中:

    {
        "mainKey1" : 
        [
            {
                "subKey1" : "Value 1",
                "subKey2" : "Value 2",
                "subKey3" : "Value 3"
            },
            {
                "subKey1" : "Value 1",
                "subKey2" : "Value 2",
                "subKey3" : "Value 3"
            }
        ],

        "mainKey2" : 
        [
            {
                "subKey1" : "Value 1",
                "subKey2" : "Value 2",
                "subKey3" : "Value 3"
            },
            {
                "subKey1" : "Value 1",
                "subKey2" : "Value 2",
                "subKey3" : "Value 3"
            }
        ]
    }   

我怎样才能获得名称" mainKey1"," mainKey2"等等,以及" subKey1",subKey2"等等

最后,在获得这些关键名称后,我怎样才能使用它们来阅读相应的" Value1"," Value2"," Value3"。

提前致谢!

2 个答案:

答案 0 :(得分:1)

 var obj = {
  "mainKey1": [{
             "subKey1": "Value 1",
             "subKey2": "Value 2",
             "subKey3": "Value 3"
         },
         {
             "subKey1": "Value 1",
             "subKey2": "Value 2",
             "subKey3": "Value 3"
         }
     ],

     "mainKey2": [{
             "subKey1": "Value 1",
             "subKey2": "Value 2",
             "subKey3": "Value 3"
         },
         {
             "subKey1": "Value 1",
             "subKey2": "Value 2",
             "subKey3": "Value 3"
         }
     ]
 };

这将打印上述对象的所有值。

for (var key in obj) {
     var innerArray = obj[key];
     for (var arrayKey in innerArray) {
         var innerObj = innerArray[arrayKey]
         for (var innerKey in innerObj) {
              console.log(innerKey,innerObj[innerKey]);
         }
     }
 }

运行示例 - https://jsfiddle.net/voxf7do6/1/

答案 1 :(得分:1)

您可以使用Object.keys(obj)来获取密钥:

var obj = {"mainKey1" : 
        [
            {
                "subKey1" : "Value 1",
                "subKey2" : "Value 2",
                "subKey3" : "Value 3"
            },
            {
                "subKey1" : "Value 1",
                "subKey2" : "Value 2",
                "subKey3" : "Value 3"
            }
        ]
}

var keys = Object.keys(obj);
console.log(keys[0]);


var subkeys = Object.keys(obj[keys[0]][0]);
console.log(subkeys);
console.log(subkeys[0]);
console.log(obj[keys[0]][0][subkeys[0]]);

只需将其放入foreach循环中即可浏览每个可用的键/子键,您就可以获得所需的信息。