我正在尝试通过API将数据提取到Google表格中,我能够获取“ NewConfirmed”和其他一些字段,但无法获取“ Countries”数据。请帮忙。
function Covid19() {
// Call the COVID19 API
var response = UrlFetchApp.fetch("https://api.covid19api.com/summary");
// Parse the JSON reply
var json=response.getContentText();
var data=JSON.parse(json);
var sheet = SpreadsheetApp.getActiveSheet();
var i = 2;
for each (var info in data)
{
sheet.getRange(i,1).setValue([info['NewConfirmed']]);
sheet.getRange(i,2).setValue([info['Country']]);
i = i + 1;
}
答案 0 :(得分:1)
{Countries = [{CountryCode = AX,TotalRecovered = 0.0,NewDeaths = 0.0, Slug = ala-aland-islands,Country = ALA奥兰群岛,NewRecovered = 0.0, Date = 2020-04-21T12:32:01Z,NewConfirmed = 0.0,...
因此,要检索Country
和NewConfirmed
,您需要定义
var data=JSON.parse(json).Countries
,然后您必须遍历循环中的所有条目。
基于您的代码的示例:
function Covid19() {
var response = UrlFetchApp.fetch("https://api.covid19api.com/summary");
var json=response.getContentText();
var data=JSON.parse(json).Countries;
var sheet = SpreadsheetApp.getActiveSheet();
for(var i = 0; i < data.length; i++)
{
sheet.getRange(i+2,1).setValue([data[i]['NewConfirmed']]);
sheet.getRange(i+2,2).setValue([data[i]['Country']]);
}
}
旁注:
在每次使用
getRange(...).setValue(..)
时都非常实用 循环迭代。最好将数据写入数组,然后 完成后将包含所有数据的数组分配给工作表 迭代。