“范围的坐标或尺寸无效”

时间:2016-03-07 12:40:18

标签: json google-apps-script google-sheets

我正在开发一个与REST API链接的Google Apps脚本,并将数据放入Google表格。

我已成功完成此操作一次,但在访问某些不同的数据时,我收到错误消息

  

“范围的坐标或尺寸无效”

当他们在我的其他剧本上完美地工作时。访问的所有数据都是JSON,所以我有点困惑,来自同一个来源。我正在使用的代码是:

function stats () {
  var logIn = {
    "Authorization" : "Basic " + Utilities.base64Encode("XXXX" + ':' + "XXXX")
  };

  var url = "XXXXX";
  var params = {
    "method":"GET",
    "headers":logIn, };

  var response = UrlFetchApp.fetch(url, params);
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("XXXX");              

  var dataAll = JSON.parse(response.getContentText()); //
  var dataSet = dataAll;

  var rows = [],
      data;

  for (i = 0; i < dataSet.length; i++) {
    data = dataSet[i];
    rows.push([XXXX]); //your JSON entities here
  }

  dataRange = sheet.getRange(1, 1, rows.length, 1); 
  dataRange.setValues(rows);
}

我已经整合了来自网络的代码片段,这适用于我的其他脚本。错误出现在这一行:

dataRange = sheet.getRange(1, 1, rows.length, 1);

我认为问题在于我正在访问的数据,但我不知道如何更改脚本以使其工作。

有效的JSON数据如下所示:

{
  id: XXX,
  group: XX,
  text: "XXXX?",
  creation_date: XXXX,
  created_by: "XXXXX",
  tags: [
    "XXXX"
  ]
}

导致错误的数据显示为:

    {
      2016-02-29: {
      XXX: 0,
      XXX: 0
    },

我不得不'XXXX'输出很多私人信息 - 道歉。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

Javascript的length属性适用于索引数组,不适用于对象,因此dataSet.length返回undefined并且循环永远不会执行。

要获得对象的长度,您可以按here所述使用Object.keys(dataSet).length