Google apps script 如何从URL连接web API并使用该数据?
我完成了大约计数npm包的下载次数,现在我可以从url使用JSON web api,但我不知道如何使用responseToRows()函数将其解析为行,我可以在Logger.log()中获取数据。 我的JSON结构是Google apps script 如何从URL连接web API并使用该数据?,google-apps-script,google-data-studio,Google Apps Script,Google Data Studio,我完成了大约计数npm包的下载次数,现在我可以从url使用JSON web api,但我不知道如何使用responseToRows()函数将其解析为行,我可以在Logger.log()中获取数据。 我的JSON结构是 [ {CODE:value,PRICE:value,QTY:value}, {CODE:value,PRICE:value,QTY:value}... ] 我希望的价值是: 函数响应行(requestedFields,parsedResponse){ //转换解析
[
{CODE:value,PRICE:value,QTY:value},
{CODE:value,PRICE:value,QTY:value}...
]
我希望的价值是:
函数响应行(requestedFields,parsedResponse){
//转换解析的数据并筛选请求的字段
返回response.map(函数(){
var行=[];
requestedFields.asArray().forEach(函数(字段){
开关(field.getId()){
案例“代码”:
返回行推送(代码);
案例“价格”:
返回行。推送(价格);
案例“数量”:
返回行推送(数量);
违约:
返回行推送(“”);
}
});
返回{值:行};
});
}
但是我不知道如何
row.push()
,因为您需要对教程中的原始函数进行一些额外的更改:
- 您可能不会像在教程中使用的那样使用
参数,因为它是基于DataStudio使用的对象。因此,您可以删除它,只需查看正在传递的每个对象的键(请参见下面的代码)requestedFields
- 函数中没有使用
参数,您使用的是parsedResponse
,因此您还需要更改参数的名称response
中的函数缺少一个参数名,将值推送到map
开关中的行时将使用该参数名(请参见下面的代码)。我将其命名为
,但如果需要,您可以使用其他名称事务
function responseToRows(response) {
return response.map(function(transaction) {
var row = [];
Object.keys(transaction).forEach(function (field) {
switch (field) {
case 'CODE':
return row.push(transaction.CODE);
case 'PRICE':
return row.push(transaction.PRICE);
case 'QTY':
return row.push(transaction.QTY);
default:
return row.push('');
}
});
return { values: row };
});
}
然后你可以这样测试它:
function test() {
const testData = [
{CODE:1,PRICE:1,QTY:1},
{CODE:2,PRICE:2,QTY:2},
{CODE:3,PRICE:3,QTY:3},
{CODE:4,PRICE:4,QTY:4},
];
Logger.log(responseToRows(testData));
}
// Result:
//[{values=[1.0, 1.0, 1.0]},
// {values=[2.0, 2.0, 2.0]},
// {values=[3.0, 3.0, 3.0]},
// {values=[4.0, 4.0, 4.0]}
//]
另外,如果您计划将该结果写入一个工作表,那么最好使用二维数组格式,因此您必须更改return{values:row}
只返回行代码>