如何遍历具有键和数组的json

时间:2017-05-28 19:58:51

标签: javascript json

我试图通过foreach访问每个对象...而且我不知道究竟是多少因为json数组是一个具有一定数量记录的键,然后是另一个具有其他值的键如果你注意到,还有一种颜色。如何在json中显示颜色?我需要在我的页面上。

这是我的json:

{
  "7": [{
      "idType": 0,
      "nrReq": 41,
      "dataD": "2017-05-14",
      "typeC": "CO",
      "startDate": "2017-05-16",
      "endDate": "2017-05-17",
      "dataA": "2017-05-14",
      "color": "000080"
    }, {
      "idType": 0,
      "nrReq": 42,
      "dataD": "2017-05-14",
      "typeC": "CM",
      "startDate": "2017-05-23",
      "endDate": "2017-05-24",
      "dataA": "2017-05-18",
      "color": "000080"
    },

    "8": [{
      "idType": 0,
      "nrC": 53,
      "dataD": "2017-05-20",
      "typeC": "CO",
      "startDate": "2017-05-23",
      "endDate": "2017-05-23",
      "dataA": "2017-05-20",
      "color": "ffd9b3"
    }],

    "25": [{
      "idType": 0,
      "nrC": 51,
      "dataD": "2017-05-23",
      "typeC": "CP",
      "startDate": "2017-05-29",
      "endDate": "2017-05-30",
      "dataA": "2017-05-20",
      "color": "ff6600"
    }]
  }

它应该怎么样?我认为它应该是2个foreachs ......

1 个答案:

答案 0 :(得分:0)

你可以使用一个,因为数据是你知道的结构。

注意:我可能认为只有一个对象"每个ID" JSON中语法错误的原因。 :)

如果,你不知道数组中只有一个项目,你需要迭代每个数组(所以2个循环)。



var data = {
  "7": [{
    "idType": 0,
    "nrReq": 41,
    "dataD": "2017-05-14",
    "typeC": "CO",
    "startDate": "2017-05-16",
    "endDate": "2017-05-17",
    "dataA": "2017-05-14",
    "color": "000080"
  }],
  "8": [{
    "idType": 0,
    "nrC": 53,
    "dataD": "2017-05-20",
    "typeC": "CO",
    "startDate": "2017-05-23",
    "endDate": "2017-05-23",
    "dataA": "2017-05-20",
    "color": "ffd9b3"
  }],

  "25": [{
    "idType": 0,
    "nrC": 51,
    "dataD": "2017-05-23",
    "typeC": "CP",
    "startDate": "2017-05-29",
    "endDate": "2017-05-30",
    "dataA": "2017-05-20",
    "color": "ff6600"
  }]
};

for (var id in data) {
  if (data.hasOwnProperty(id)) {
    console.log(data[id][0].color); // etc
  }
}