【问题标题】:Get key value from the list of JSON in NodeJS从 NodeJS 中的 JSON 列表中获取键值
【发布时间】:2016-06-20 15:00:32
【问题描述】:

我将 JSON 对象作为对象列表接收:

result=[{"key1":"value1","key2":"value2"}]

我正在尝试从 Node.js 中的此列表中检索值。我使用了JSON.stringify(result),但失败了。我一直在尝试使用 for(var key in result) 迭代列表,但没有成功,因为它将每个项目打印为键。

有人遇到过类似的问题吗?请指出正确的方向。

【问题讨论】:

    标签: json node.js


    【解决方案1】:

    这是针对 JsonObject(不是 JsonArray 本身)。 p 是您的 jsonobject,密钥对是 keyp[key]

    var p = {
        "p1": "value1",
        "p2": "value2",
        "p3": "value3"
    };
    
    for (var key in p) {
        if (p.hasOwnProperty(key)) {
            console.log(key + " -> " + p[key]);
        }
    }
    

    【讨论】:

    • 也许你应该稍微解释一下,以便更好地理解。
    【解决方案2】:

    有点不同的方法:

    let result=[{"key1":"value1","key2":"value2"}]
    for(let i of result){
        console.log("i is: ",i)
        console.log("key is: ",Object.keys(i));
        console.log("value is: ",Object.keys(i).map(key => i[key])) // Object.values can be used as well in newer versions.
    }
    

    【讨论】:

      【解决方案3】:

      这不就是:

      let obj = JSON.parse(result);
      let arrValues = Object.values(obj);
      

      这将为您提供一个仅包含要迭代的值的数组。

      【讨论】:

        【解决方案4】:

        试试这个代码:

        For result=[{"key1":"value1","key2":"value2"}]
        

        下面将打印各个键的值:

        console.log(result[0].key1)
        
        console.log(result[0].key2)
        

        【讨论】:

          【解决方案5】:

          好的,假设这里的result 是一个字符串,你需要做的第一件事就是将它转换(反序列化)为一个JavaScript 对象。这样做的一个好方法是:

          array = JSON.parse(result)
          

          接下来循环遍历数组中的每一项,对于每一项,你可以像这样循环遍历键:

          for(var idx in array) {
            var item = array[idx];
            for(var key in item) {
              var value = item[key];
            }
          }
          

          【讨论】:

            【解决方案6】:

            如果你的结果是一个字符串,那么:

            var obj = JSON.parse(result);
            var keys = Object.keys(obj);
            for (var i = 0; i < keys.length; i++) {
              console.log(obj[keys[i]]);
            }
            

            【讨论】:

              【解决方案7】:

              看起来您指向了错误的对象。 要么喜欢

              var result = [{"key1":"value1","key2":"value2"}];
              for(var key in result[0]){ alert(key);}

              var keys = Object.keys([{"key1":"value1","key2":"value2"}][0]);
              alert(keys);

              【讨论】:

                猜你喜欢
                • 2017-03-15
                • 2017-06-16
                • 2016-09-30
                • 2019-10-20
                • 2021-06-10
                • 1970-01-01
                • 2013-10-25
                • 2020-11-25
                • 1970-01-01
                相关资源
                最近更新 更多