我正在尝试用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);
有人知道我可能在做错什么或怎么做吗?
谢谢
答案 0 :(得分:-1)
简单。那不是一个数组,而是一个具有三个属性的对象:cases
,deaths
和recovered
。这些属性中的每一个本身就是一个对象。要获取案例,您需要像这样索引:
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
]
}