如何循环访问具有键和值数组的 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 个...

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

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

如果您不知道数组中只有一个项目,则需要迭代每个数组(因此 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
  }
}

最新更新