AppScript API返回空的JSON对象



因此,我试图使用我的Google Sheet构建一个API,但遇到了一个问题。

这是我的代码

function doGet() {
let doc = SpreadsheetApp.getActiveSpreadsheet();
let sheet = doc.getSheetByName('portfolios');
let values = sheet.getDataRange().getValues();
let output = [];
for (let i = 2; i < values.length; i++) {
let row = [];
row['name'] = values[i][0];
row['committee'] = values[i][1];
row['post'] = values[i][2];
//console.log(row)
output.push(row);
}
console.log(output)
return ContentService.createTextOutput(JSON.stringify(output)).setMimeType(ContentService.MimeType.JSON);
}

当我运行脚本时,我在控制台中获得所需的输出,但当我部署API(我已经将"谁有权访问"设置为Everyone(并发送get请求时,我会收到一个空的JSON对象。

[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]

我做错了什么?

代表OP,Himanshu Sardana

我修复了这个错误,结果发现是我错误地使用了JSON.stringify函数。我可以通过更改来修复它:

let row = [];

let row = {};

编辑代码:

function doGet() {
let doc = SpreadsheetApp.getActiveSpreadsheet();
let sheet = doc.getSheetByName('portfolios');
let values = sheet.getDataRange().getValues();
let output = [];
for (let i = 2; i < values.length; i++) {
let row = {}; // Edit in question
row['name'] = values[i][0];
row['committee'] = values[i][1];
row['post'] = values[i][2];
//console.log(row)
output.push(row);
}
console.log(output)
return ContentService.createTextOutput(JSON.stringify(output)).setMimeType(ContentService.MimeType.JSON);
}

最新更新