我正在处理谷歌脚本,可以调用REST API并获取谷歌电子表格中的数据。但是不同的Json对象起作用,我现在使用它不起作用......
起初它给我一个错误,因为范围的坐标或尺寸无效。所以看着 "The coordinates or dimensions of the range are invalid" - Google Apps Script and JSON Data
现在结果是未定义 ..
真的很感激,如果有人可以提供帮助
function pullJSON(k) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var sheet = ss.getActiveSheet();
var url = "********"; // Paste your JSON URL here
var headers = {
"Content-Type": "application/json",
};
var options = {
"method": "GET",
"headers": headers
};
var response = UrlFetchApp.fetch(url, options); // get feed
var dataAll = JSON.parse(response.getContentText()); //
var dataSet = dataAll;
Logger.log(dataAll.length);
Logger.log(k);
Logger.log(url);
var rows = [],
data;
for (var k = 0; k < Object.keys(dataSet).length; k++) {
data = [Object.keys(dataSet)[k]];
Logger.log(data);
rows.push([data.total1]);} //your JSON entities here
dataRange = sheet.getRange( 1, 1,rows.length,1); // 3 Denotes total number of entites
dataRange.setValues(rows);
}
答案 0 :(得分:0)
您目前正在做的是在Object.keys()
上致电dataSet
这将返回一个字符串数组,例如["status", "data"]
。
然后分别检索每个键并将它们作为一个元素数组分配给数据,因此数据看起来像
["status"]
和["data"]
由于["total1]"
是一个字符串数组,因此它没有"total1"
属性,只是一个值等于名称的元素。
要获取数据中每个对象的实际总计1值,您可以
dataSet.data.forEach(function(x) {
rows.push([x.total1]);
});
而不是for循环。