【发布时间】:2015-07-24 18:58:52
【问题描述】:
我正在尝试学习 google app 脚本,因此我从“Hello, World”开始。最终,我借用了一个工作代码来为保存在电子表格中的数据返回一个 JSON。下面是代码 -
function doGet(e) {
var json = convertSheet2JsonText();
return ContentService.createTextOutput(JSON.stringify(json))
.setMimeType(ContentService.MimeType.JSON);
}
function convertSheet2JsonText() {
var sheet =
SpreadsheetApp.openById("1kQVRu_9HLAZZWReGxGQL3513ShiwUQ6Ux-
GkjO19nWQ").getActiveSheet();
var colStartIndex = 1;
var rowNum = 1;
var firstRange = sheet.getRange(1, 1, 1, sheet.getLastColumn());
var firstRowValues = firstRange.getValues();
var titleColumns = firstRowValues[0];
// after the second line(data)
var lastRow = sheet.getLastRow();
var rowValues = [];
for(var rowIndex=2; rowIndex<=lastRow; rowIndex++) {
var colStartIndex = 1;
var rowNum = 1;
var range = sheet.getRange(rowIndex, colStartIndex, rowNum,
sheet.getLastColumn());
var values = range.getValues();
rowValues.push(values[0]);
}
// create json
var jsonArray = [];
for(var i=0; i<rowValues.length; i++) {
var line = rowValues[i];
var json = new Object();
for(var j=0; j<titleColumns.length; j++) {
json[titleColumns[j]] = line[j];
}
jsonArray.push(json);
}
return jsonArray ;
}
我已按照步骤将其部署为网络应用程序。 1. 当我使用“最新代码”链接测试代码时,我得到了预期的 JSON。 2. 但是,我使用“当前 Web 应用 URL”的链接,我得到文本“Hello World”。
我创建了一个新电子表格并在脚本编辑器中复制了相同的代码并将其部署为网络应用程序。现在,如果我使用“当前 Web 应用 URL”链接,我会得到预期的 JSON。
请告诉我,在第一种情况下,我怎样才能使产品链接发送 JSON 而不是字符串“Hello World”。
如有任何问题,请告诉我。
【问题讨论】:
-
使用新版本重新发布 webApp。
-
还要检查工作表上的权限
-
感谢克里格斯。更改版本使其工作。