从JSON文件解析数组

时间:2020-06-10 23:40:19

标签: javascript json discord.js

我正在尝试用JS解析JSON,有一个数组,无法正常工作。我在程序中还解析了其他API。这是数据

{
  "cases": {
    "6/5/20": 6774904,
    "6/6/20": 6901877,
    "6/7/20": 7015312,
    "6/8/20": 7119002,
    "6/9/20": 7236054
  },
  "deaths": {
    "6/5/20": 396204,
    "6/6/20": 400051,
    "6/7/20": 402792,
    "6/8/20": 406543,
    "6/9/20": 411436
  },
  "recovered": {
    "6/5/20": 2961441,
    "6/6/20": 3032630,
    "6/7/20": 3087135,
    "6/8/20": 3238065,
    "6/9/20": 3319551
  }
}

我为此使用的代码在这里。

    const response = await fetch("https://disease.sh/v2/historical/all?lastdays=5");
    const data = await response.json();
    var casesH = data.cases[0];

    msg.channel.send(casesH);
    console.log(casesH);

有人知道我可能在做错什么或怎么做吗?

谢谢

2 个答案:

答案 0 :(得分:-1)

简单。那不是一个数组,而是一个具有三个属性的对象:casesdeathsrecovered。这些属性中的每一个本身就是一个对象。要获取案例,您需要像这样索引:

const data = await fetch(`url`).then(res => res.json());

const cases = data['cases'];

或者,您应该可以使用ES6 destructuring

const { cases, deaths, recovered } = await fetch(`url`).then(res => res.json());

答案 1 :(得分:-2)

JSON不是数组,应该是

{
"cases": [
    "6/5/20": 6774904,
    "6/6/20": 6901877,
    "6/7/20": 7015312,
    "6/8/20": 7119002,
    "6/9/20": 7236054
  ],
  "deaths": [
    "6/5/20": 396204,
    "6/6/20": 400051,
    "6/7/20": 402792,
    "6/8/20": 406543,
    "6/9/20": 411436
  ],
  "recovered": [
    "6/5/20": 2961441,
    "6/6/20": 3032630,
    "6/7/20": 3087135,
    "6/8/20": 3238065,
    "6/9/20": 3319551
  ]
}