我收到JSON对象作为对象列表:
result=[{"key1":"value1","key2":"value2"}]
我正在尝试从Node.js中的此列表中检索值。我使用JSON.stringify(result)
但失败了。我一直试图使用for(var key in result)
迭代列表而没有运气,因为它将每个项目打印为关键。
是否有人遇到类似问题或已经过这个问题?请指出我正确的方向。
答案 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,密钥对是 key
和 p[key]
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
for (var key in p) {
if (p.hasOwnProperty(key)) {
console.log(key + " -> " + p[key]);
}
}