我正在尝试遍历以下json数组:
{
"id": "1",
"msg": "hi",
"tid": "2013-05-05 23:35",
"fromWho": "hello1@email.se"
}, {
"id": "2",
"msg": "there",
"tid": "2013-05-05 23:45",
"fromWho": "hello2@email.se"
}
并尝试了以下几种方法
for (var key in data) {
if (data.hasOwnProperty(key)) {
console.log(data[key].id);
}
}
但是由于某种原因,我只得到了第一部分,id1的值。
有什么想法吗?
发布于 2013-08-15 01:21:59
您的JSON应该如下所示:
var json = [{
"id" : "1",
"msg" : "hi",
"tid" : "2013-05-05 23:35",
"fromWho": "hello1@email.se"
},
{
"id" : "2",
"msg" : "there",
"tid" : "2013-05-05 23:45",
"fromWho": "hello2@email.se"
}];
您可以像这样循环遍历Array:
for(var i = 0; i < json.length; i++) {
var obj = json[i];
console.log(obj.id);
}
或者像这样(来自Eric的建议)小心IE支持
json.forEach(function(obj) { console.log(obj.id); });
发布于 2013-08-15 01:30:44
在你的代码中有一些问题,首先你的json必须看起来像这样:
var json = [{
"id" : "1",
"msg" : "hi",
"tid" : "2013-05-05 23:35",
"fromWho": "hello1@email.se"
},
{
"id" : "2",
"msg" : "there",
"tid" : "2013-05-05 23:45",
"fromWho": "hello2@email.se"
}];
接下来,您可以像这样迭代:
for (var key in json) {
if (json.hasOwnProperty(key)) {
alert(json[key].id);
alert(json[key].msg);
}
}
它给出了完美的结果。
请看这里的小提琴:http://jsfiddle.net/zrSmp/
发布于 2019-01-28 21:41:30
尝尝这个
var json = [{
"id" : "1",
"msg" : "hi",
"tid" : "2013-05-05 23:35",
"fromWho": "hello1@email.se"
},
{
"id" : "2",
"msg" : "there",
"tid" : "2013-05-05 23:45",
"fromWho": "hello2@email.se"
}];
json.forEach((item) => {
console.log('ID: ' + item.id);
console.log('MSG: ' + item.msg);
console.log('TID: ' + item.tid);
console.log('FROMWHO: ' + item.fromWho);
});
https://stackoverflow.com/questions/18238173
复制相似问题