Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript GoogleApps脚本将JSON数组输出到一行中_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript GoogleApps脚本将JSON数组输出到一行中

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"

我对将javascript数组写入GoogleSheets行的最后一步有意见

我意识到setValues()方法需要一个2D数组,但我缺少了一些明显的东西,我不知道是什么

我正在处理这个JSON响应,我想将rates[]数组写入Google工作表中的一行

{
    "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)

}
此代码还将在工作表中输入键的值