从NodeJS中的JSON列表中获取键值

时间:2016-03-07 06:16:27

标签: json node.js

我收到JSON对象作为对象列表:

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

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

是否有人遇到类似问题或已经过这个问题?请指出我正确的方向。

7 个答案:

答案 0 :(得分:12)

如果您的结果是字符串,那么:

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

答案 1 :(得分:3)

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

array = JSON.parse(result)

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

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

答案 2 :(得分:2)

看起来你指的是错误的对象。 要么

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);

答案 3 :(得分:1)

试试这段代码:

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

下面将打印单个键的值:

console.log(result[0].key1)

console.log(result[0].key2)

答案 4 :(得分:1)

这不是吗?

<audio controls>
 <source src="" type="audio/mpeg">
</audio>

<div class="control">
  <label class="label">Stream</label>
  <input class="input" type="text" />
</div>

这将为您提供一系列要迭代的值。

答案 5 :(得分:0)

一些不同的方法:

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

答案 6 :(得分:0)

这是用于 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]);
    }
}