google-apps-script - Google App Script - Json 响应解析
解决方案
这个示例脚本怎么样?请认为这只是几个可能的答案之一。
示例脚本:
var json = {locationMetrics:[{metricValues:[{metric:"ACTIONS_DRIVING_DIRECTIONS", dimensionalValues:[{timeDimension:{timeRange:{startTime:"2020-02-01T00:00:00Z"}}, value:3, metricOption:"AGGREGATED_DAILY"}, {value:0, metricOption:"AGGREGATED_DAILY", timeDimension:{timeRange:{startTime:"2020-02-02T00:00:00Z"}}}]}, {metric:"ACTIONS_PHONE", dimensionalValues:[{metricOption:"AGGREGATED_DAILY", timeDimension:{timeRange:{startTime:"2020-02-01T00:00:00Z"}}, value:0}, {timeDimension:{timeRange:{startTime:"2020-02-02T00:00:00Z"}}, value:0, metricOption:"AGGREGATED_DAILY"}]}], timeZone:"Europe/London", locationName:"accounts/xxx/locations/xxx"}]};
// Create an array from "json".
var locationMetrics = json.locationMetrics;
var rows = locationMetrics.reduce(function(ar1, obj1) {
return ar1.concat(obj1.metricValues.reduce(function(ar2, obj2) {
return ar2.concat(obj2.dimensionalValues.map(function(obj3) {return [obj2.metric, obj3.metricOption, obj3.timeDimension.timeRange.startTime, obj3.value]}));
}, []));
}, []);
// Put values to Spreadsheet.
var sheet = SpreadsheetApp.getActive().getSheetByName('sheet1')
dataRange = sheet.getRange(2, 1, rows.length, 4);
dataRange.setValues(rows);
json
来自你的问题。
结果:
[
["ACTIONS_DRIVING_DIRECTIONS","AGGREGATED_DAILY","2020-02-01T00:00:00Z",3],
["ACTIONS_DRIVING_DIRECTIONS","AGGREGATED_DAILY","2020-02-02T00:00:00Z",0],
["ACTIONS_PHONE","AGGREGATED_DAILY","2020-02-01T00:00:00Z",0],
["ACTIONS_PHONE","AGGREGATED_DAILY","2020-02-02T00:00:00Z",0]
]
笔记:
- 在这种情况下,脚本可以在使用和不使用 V8 的情况下工作。
- 在此示例脚本中,使用了您的示例值。所以它假设所有的键
"metric", "metricOption", "startTime", "value"
都存在。所以请注意这一点。
参考:
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
推荐阅读
- python - python中的Crytography.fernet无效令牌错误
- docker - 在容器内运行时如何修复Webpack“您可能需要适当的加载程序来处理此文件类型”?
- sql - 将小时提取转换为 Bigquery 标准 SQL
- javascript - 是否可以将地址与保存的搜索分开,以便在高级 PDF/HTML 模板中分为三个特定行?
- node.js - 我想将全局变量的更新值保存在记事本文件中,当我重新启动服务器时,它应该再次从更新值开始
- docker - Bamboo 上的 openshift cli 问题 - 持续部署
- python - 为什么我没有获得附加到我的问题实例的标签实例?
- javascript - 如何更改折线的笔触颜色?
- expression - 在 qlikview 中同时出现两个表达式
- sql - 如何在 Teradata 中更新具有 NULL 值的列?