首页 > 解决方案 > 将 JSON 数组输出打印到 Google 表格

问题描述

我正在尝试在 Google Script 中解析 JSON 数组的输出并将其打印到工作表上。工作表中的预期输出:

我目前正在使用下面的脚本,它给我的输出为

任何人都可以帮助我在这里缺少什么吗?

    function addObject(){
     var obj = {
        "base": "CAD",
        "date": "2017-05-05",
        "rates": [{
            "AUD": "0.98",
            "CNY": "5.01",
            "GBP": "0.56",
            "HKD": "5.60"
        },
                 {
            "AUD": "0.91",
            "CNY": "8.01",
            "GBP": "0.93",
            "HKD": "2.61"
        }]
    }
    var inputArray = []
    var rates = obj.rates
    for (var j in rates){
      inputArray.push([rates[j]])
    }
    Logger.log(inputArray)
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName('Sheet1');
    sheet.getRange(sheet.getLastRow()+1, 1,inputArray.length,inputArray[0].length).setValues(inputArray)

    }

标签: arraysjsongoogle-apps-scriptgoogle-sheetsjsonparser

解决方案


您需要将数组转换为二维数组:

let obj = {
    "base": "CAD",
    "date": "2017-05-05",
    "rates": [{
        "AUD": "0.98",
        "CNY": "5.01",
        "GBP": "0.56",
        "HKD": "5.60"
    },
             {
        "AUD": "0.91",
        "CNY": "8.01",
        "GBP": "0.93",
        "HKD": "2.61"
    }]
}

let headers = Object.keys(obj.rates[0]);
let out = obj.rates.map(({AUD,CNY,GBP,HKD})=> [AUD,CNY,GBP,HKD]);
out.unshift(headers);
console.log(out);//setvalues this array: out


推荐阅读