在谷歌表中,我有一个脚本可以从 url 检索 Json
function getTeamData() {
var DATA_SPREADSHEET_ID = "xxxx";
var ss = SpreadsheetApp.openById(DATA_SPREADSHEET_ID);
var TeamDataSheet = ss.getSheetByName("rawTeam");
TeamDataSheet.clearContents();
var url = 'xxxx';
var response = UrlFetchApp.fetch(url);
var content = response.getContentText();
var data = JSON.parse(content);
//Logger.log(JSON.stringify(data));
我遇到的问题是 JSon 内容看起来像这样
{
"03wi4": {
"statsIncId": 5546,
"rotowireId": 3795,
"name": "Saunders, Wesley",
"fantraxId": "03wi4",
"team": "NY",
"position": "SG"
},
"059gh": {
"statsIncId": 6321,
"rotowireId": 4919,
"name": "Booth, Phil",
"fantraxId": "059gh",
"team": "(N/A)",
"position": "PG"
},
"02nfe": {
"statsIncId": 5020,
"rotowireId": 3308,
"sportRadarId": "c555e067-c4d5-43f6-99af-716b6005cbba",
"name": "Henson, John",
"fantraxId": "02nfe",
"team": "NY",
"position": "PF"
},
"033b7": {
"statsIncId": 5235,
"rotowireId": 3538,
"name": "Raduljica, Miroslav",
"fantraxId": "033b7",
"team": "(N/A)",
"position": "C"
},
...
}
我希望能够返回每个参赛作品的团队,但我没有共同的第一个标签名称...... 你能帮忙吗,结果应该是这样的:
059gh (N/A)
02nfe NY
033b7 (N/A)```
我相信您的目标如下。
[["03wi4","NY"],["059gh","(N/A)"],["02nfe","NY"],["033b7","(N/A)"]]
的值。data
的 var data = JSON.parse(content);
。既然如此,下面的修改如何?
function getTeamData() {
var DATA_SPREADSHEET_ID = "xxxx";
var ss = SpreadsheetApp.openById(DATA_SPREADSHEET_ID);
var TeamDataSheet = ss.getSheetByName("rawTeam");
TeamDataSheet.clearContents();
var url = 'xxxx';
var response = UrlFetchApp.fetch(url);
var content = response.getContentText();
var data = JSON.parse(content);
// I added the below script.
var res = Object.entries(data).map(([k, { team }]) => [k, team]);
TeamDataSheet.getRange(1, 1, res.length, res[0].length).setValues(res);
}
当考虑到您之前的问题时,请将上面的脚本修改如下。
来自
TeamDataSheet.getRange(1, 1, res.length, res[0].length).setValues(res);
致
TeamDataSheet.getRange(1, 1, res.length, res[0].length).setNumberFormat("@").setValues(res);
或者,
来自
var res = Object.entries(data).map(([k, { team }]) => [k, team]);
TeamDataSheet.getRange(1, 1, res.length, res[0].length).setValues(res);
致
var res = Object.entries(data).map(([k, { team }]) => [`'${k}`, team]);
TeamDataSheet.getRange(1, 1, res.length, res[0].length).setValues(res);
data
的值是您显示的 JSON 对象。请注意这一点。