首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript循环通过JSON数组?

JavaScript循环通过JSON数组?
EN

Stack Overflow用户
提问于 2013-08-15 01:18:24
回答 12查看 665.1K关注 0票数 176

我正在尝试遍历以下json数组:

代码语言:javascript
复制
{
  "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"
}

并尝试了以下几种方法

代码语言:javascript
复制
for (var key in data) {
   if (data.hasOwnProperty(key)) {
      console.log(data[key].id);
   }
}

但是由于某种原因,我只得到了第一部分,id1的值。

有什么想法吗?

EN

回答 12

Stack Overflow用户

发布于 2013-08-15 01:21:59

您的JSON应该如下所示:

代码语言:javascript
复制
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:

代码语言:javascript
复制
for(var i = 0; i < json.length; i++) {
    var obj = json[i];

    console.log(obj.id);
}

或者像这样(来自Eric的建议)小心IE支持

代码语言:javascript
复制
json.forEach(function(obj) { console.log(obj.id); });
票数 272
EN

Stack Overflow用户

发布于 2013-08-15 01:30:44

在你的代码中有一些问题,首先你的json必须看起来像这样:

代码语言:javascript
复制
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"
}];

接下来,您可以像这样迭代:

代码语言:javascript
复制
for (var key in json) {
if (json.hasOwnProperty(key)) {
  alert(json[key].id);
  alert(json[key].msg);
}
}

它给出了完美的结果。

请看这里的小提琴:http://jsfiddle.net/zrSmp/

票数 32
EN

Stack Overflow用户

发布于 2019-01-28 21:41:30

尝尝这个

代码语言:javascript
复制
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);
});
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18238173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档