我正在开发一个与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'输出很多私人信息 - 道歉。任何帮助,将不胜感激。
答案 0 :(得分:0)
Javascript的length属性适用于索引数组,不适用于对象,因此dataSet.length
返回undefined
并且循环永远不会执行。
要获得对象的长度,您可以按here所述使用Object.keys(dataSet).length
。