API 不会 return 数据(Google 表格/应用程序脚本)

API won't return data (Google Sheets / App Script)

我认为问题出在 var 的 的定义中,用于创建 table.push,以及正确的数据路径定义var diavar mesvar anovar horavar 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.lengthnull.
  • 因此,您只会得到一行数据。

假设您正在使用的 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);
}