Javascript GoogleApps脚本将JSON数组输出到一行中
我对将javascript数组写入GoogleSheets行的最后一步有意见 我意识到setValues()方法需要一个2D数组,但我缺少了一些明显的东西,我不知道是什么 我正在处理这个JSON响应,我想将rates[]数组写入Google工作表中的一行Javascript GoogleApps脚本将JSON数组输出到一行中,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我对将javascript数组写入GoogleSheets行的最后一步有意见 我意识到setValues()方法需要一个2D数组,但我缺少了一些明显的东西,我不知道是什么 我正在处理这个JSON响应,我想将rates[]数组写入Google工作表中的一行 { "base": "CAD", "date": "2017-05-05", "rates": { "AUD": 0.98264, "CNY": 5.0123, "GBP"
{
"base": "CAD",
"date": "2017-05-05",
"rates": {
"AUD": 0.98264,
"CNY": 5.0123,
"GBP": 0.56122,
"HKD": 5.652,
}
}
我的google apps脚本的最后一部分如下:
sheet.getRange(sheet.getLastRow(),1).setValues([rates]);
这会产生以下错误:
无法将数组转换为对象[]。(第52行,文件“代码”)
然后我嵌入了另一组括号,因为我认为这是我转换为2D数组时的错误:
sheet.getRange(sheet.getLastRow(),1).setValues([[rates]]);
然后我把所有的东西都放在一个牢房里。所以我转换成二维数组是错误的
有人能发现我做错了什么吗?使用您提供的信息,可以通过以下代码创建从对象创建二维数组的代码:
function converObjectToArray() {
var innerArray,k,k2,obj,objRates,outerArray;
obj = {
"base": "CAD",
"date": "2017-05-05",
"rates": {
"AUD": 0.98264,
"CNY": 5.0123,
"GBP": 0.56122,
"HKD": 5.652,
}
}
objRates = obj.rates;
outerArray = [];
for (k in obj) {
if (k !== 'rates') {continue;}
objRates = obj[k];
Logger.log('obj.rates ' + JSON.stringify(obj.rates))
innerArray = [];//reset
for (k2 in objRates) {
innerArray.push(objRates[k2]);
}
outerArray.push(innerArray);
}
Logger.log(outerArray)
}
您必须从对象创建一个数组,然后使用如下设置值将数组写入电子表格:
function addObject(){
var obj = {
"base": "CAD",
"date": "2017-05-05",
"rates": {
"AUD": 0.98264,
"CNY": 5.0123,
"GBP": 0.56122,
"HKD": 5.652,
}
}
var inputArray = []
var rates = obj.rates
for (var j in rates){
inputArray.push([j,rates[j]])
}
Logger.log(inputArray)
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('your Sheet Name');
sheet.getRange(sheet.getLastRow()+1, 1,inputArray.length,inputArray[0].length).setValues(inputArray)
}
此代码还将在工作表中输入键的值