【问题标题】:Access nested keys using nodejs使用 nodejs 访问嵌套键
【发布时间】:2019-02-01 02:56:55
【问题描述】:

我有一个要求,我想制作一个键列表并使用 nodejs 返回。

这是我的 json 结构:

{
        type: "qwqw",
        org: "asdasd",
        pop: "asaswe",
        results: {
            "resultId1": {
                "type": "normal"
                .............
                ..............
             },
             "resultId2": {
                "type": "normal"
                .............
                ..............
             },
             "resultId3": {
                "type": "normal"
                .............
                ..............
             }
       }

所以在这里,期望的结果是;像这样["resultId1", "resultId2", "resultId3"]

这是我尝试过的:

 var keys = Object.keys(jsonString.results);
    for (var i = 0; i < keys.length; i++) {
        console.log(data[keys[i]]);
    }

有人可以帮助我使用任何 nodejs 库进行 json 解析吗?

【问题讨论】:

  • 投反对票前,请先评论;这样我就可以改正了。
  • 你试过什么?你想要的输出是什么?
  • 更新了问题;请检查
  • 你已经解决了你的问题。 var keys = Object.keys(jsonString.results);
  • 你能在你的问题中包含你的整个代码吗? (包括导入数据的方式)编辑:顺便说一句,您的for 循环完全没用。只需打印 keys 变量。

标签: javascript json node.js


【解决方案1】:

你应该试试这个,因为在 javascript 中获取密钥非常简单。

var data =  {
                type: "qwqw",
                org: "asdasd",
                pop: "asaswe",
                results: {
                    "resultId1": {
                        "type": "normal"
                     },
                     "resultId2": {
                        "type": "normal"
                     },
                     "resultId3": {
                        "type": "normal"
                     }
                }
           };
           
var output = Object.keys(data.results);
console.log(output);

【讨论】:

    【解决方案2】:

    data.json 文件: { “类型”:“qwqw”, “org”:“asdasd”, “流行”:“asaswe”, “结果”: { “结果 ID1”:{ “id”:“4001”, “类型”:“正常” }, “结果 ID2”:{ “id”:“5001”, “类型”:“正常” }, “结果 ID3”:{ “id”:“6001”, “类型”:“正常” } } }

    Node.js Program :
    //Program by Atharva Jawalkar
    var fs = require("fs");
    var dir = __dirname + "/data.json";
    fs.readFile(dir, "utf8", function(err, data) {
      if (err) throw err;
      var obj = JSON.parse(data);
    
      var obj2 = obj.results;
    
      var keysArray = Object.keys(obj2);
      var len = keysArray.length;
      for (var i = 0; i < len; i++) {
        var key = keysArray[i]; 
        var value = obj2[key]; 
        console.log(key, value);
      }
    });
    
    Output:
    resultId1
    json_parsing_try3.js:15
    Object {id: "4001", type: "normal"}
    json_parsing_try3.js:15
    resultId2
    json_parsing_try3.js:15
    Object {id: "5001", type: "Normal"}
    json_parsing_try3.js:15
    resultId3
    json_parsing_try3.js:15
    Object {id: "6001", type: "Normal"}
    
    Here i have created data.json file and read that file in program but you can declare your json data in variable also.
    

    【讨论】:

      【解决方案3】:

      您的代码中有错误:

      var keys = Object.keys(jsonString.results);
      for (var i = 0; i < keys.length; i++) {
          console.log(data[keys[i]]);
      }
      

      应该是

      var keys = Object.keys(jsonString.results);
      for (var i = 0; i < keys.length; i++) {
          console.log(keys[i]);
      }
      

      请注意第 3 行 console.log 参数中的区别。

      【讨论】:

        猜你喜欢
        • 2014-01-14
        • 1970-01-01
        • 1970-01-01
        • 2023-01-10
        • 2019-01-16
        • 1970-01-01
        • 2011-12-24
        • 1970-01-01
        • 2023-01-20
        相关资源
        最近更新 更多