Google Apps Script解析无统一顶级键JSON,提取球队信息
Google Sheets 提取JSON标识与球队信息脚本实现
核心实现思路
- 通过
UrlFetchApp请求目标URL获取JSON数据 - 解析JSON后遍历所有顶级唯一标识键
- 提取每个键对应的
team字段,空值统一替换为(N/A) - 按指定格式整理数据,批量写入工作表
完整脚本代码
function getTeamData() { // 替换为你的目标JSON数据URL const targetUrl = "https://example.com/your-team-data.json"; // 指定要写入的工作表,可替换为getSheetByName("工作表名") const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); try { // 请求并解析JSON数据 const response = UrlFetchApp.fetch(targetUrl); const dataObj = JSON.parse(response.getContentText()); // 初始化输出数据数组 const outputRows = []; // 遍历所有唯一标识键 for (const uniqueId in dataObj) { if (dataObj.hasOwnProperty(uniqueId)) { // 处理team字段,空值显示(N/A) const teamInfo = dataObj[uniqueId].team ? dataObj[uniqueId].team : "(N/A)"; // 按格式拼接标识与球队信息 outputRows.push([`${uniqueId} ${teamInfo}`]); } } // 清空工作表原有内容(可选) sheet.clearContents(); // 批量写入数据到A列 if (outputRows.length > 0) { sheet.getRange(1, 1, outputRows.length, 1).setValues(outputRows); } SpreadsheetApp.getUi().alert("数据提取完成!"); } catch (err) { SpreadsheetApp.getUi().alert(`执行错误:${err.message}`); } }
关键细节说明
- URL替换:把
targetUrl的值改成你实际的JSON数据地址 - 工作表指定:如果不想用当前活动表,可将
getActiveSheet()替换为getSheetByName("你的工作表名称") - 空值处理:通过三元运算符判断
team字段是否存在/为空,确保输出格式统一 - 效率优化:用
setValues批量写入数据,比逐个单元格写入更高效,适合大数据量场景
注意事项
- 确保目标URL允许Google Sheets的服务器访问(部分私有API可能需要额外权限配置)
- 若JSON数据量极大,注意Google Apps Script的6分钟执行超时限制,可考虑分批次处理
内容的提问来源于stack exchange,提问作者mika_972
相关产品推荐
相关产品推荐

