arrays - 将 JSON 数组输出打印到 Google 表格
问题描述
我正在尝试在 Google Script 中解析 JSON 数组的输出并将其打印到工作表上。工作表中的预期输出:
- 第 1 行:澳元 | 人民币 | 英镑 | 港币
- 第 2 行:0.98 | 5.01 | 0.56 | 5.60
- 第 3 行:0.91 | 8.01 | 0.93 | 2.61
我目前正在使用下面的脚本,它给我的输出为
- 第 1 行:{AUD=0.98, HKD=5.01, GBP=0.56, CNY=5.60}
- 第 2 行:{AUD=0.91, HKD=8.01, GBP=0.93, CNY=2.61}
任何人都可以帮助我在这里缺少什么吗?
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)
}
解决方案
您需要将数组转换为二维数组:
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
推荐阅读
- php - 添加异常后找不到.htaccess页面
- wordpress - Wordpress 加速 RabbitMQ 队列
- gis - 与使用 PyQGIS 提取的值相比,UI 中的最小最大值不同
- firebase - Advance_pdf_viewer 和 firebase_storage 的颤振依赖问题
- geocoding - 向 Here.com API 结果添加新的兴趣点
- python - 如何从系列中有重复名称的 Pandas DF 创建字典
- performance - 飞镖中的空函数
- bash - 如何扫描条件匹配字符串并在匹配时循环
- javascript - 跨度文本更改后页面变白?
- sql - postgressql/typeorm - 在同一张表上使用过滤器计数并与另一个表连接