如何解决API不会返回数据Google表格/应用脚本
我认为问题在于创建table.push
的 var的定义,以及var dia
定义的正确数据路径,var mes
,var ano
,var hora
,var minuto
?
function CartolaPrazo() {
var url = 'https://api.cartolafc.globo.com/mercado/status';
var response = UrlFetchApp.fetch(url);
var results = JSON.parse(response.getContentText());
console.log(response)
var table = [['dia','mês','ano','hora','minuto']];
for (var i = 0; i < results.length; i++) {
var r = results[i];
var dia = r.fechamento.dia;
var mes = r.fechamento.mes;
var ano = r.fechamento.ano;
var hora = r.fechamento.hora;
var minuto = r.fechamento.minuto;
table.push([dia,mes,ano,hora,minuto]);
}
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1,22,table.length,table[0].length).setValues(table);
}
解决方法
您需要运行console.log(results)
而不是console.log(response)
。
response
拥有一个HTTPResponse对象,控制台将其显示为{}
。
- 您没有一个json对象数组,而只有一个json对象。
因此,代码中的循环是不必要的,但是由于
results.length
是null
。 - 结果,您将仅获得一行数据。
假设您正在使用的url
是您想要得到的,这将为您提供预期的结果:
function CartolaPrazo() {
var url = 'https://api.cartolafc.globo.com/mercado/status';
var response = UrlFetchApp.fetch(url);
var results = JSON.parse(response.getContentText());
var table = [['dia','mês','ano','hora','minuto']];
var dia = results.fechamento.dia;
var mes = results.fechamento.mes;
var ano = results.fechamento.ano;
var hora = results.fechamento.hora;
var minuto = results.fechamento.minuto;
table.push([dia,mes,ano,hora,minuto]);
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1,22,table.length,table[0].length).setValues(table);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。