如何在Google Apps Script中解析JSON并导入为Google Sheets表格
Google Apps Script解析API返回JSON并写入Google Sheets方案
错误原因
- 你现有代码中
response.getContentText()返回的是JSON格式的纯字符串,直接遍历字符串只能逐个拿到字符,无法获取结构化的字段数据,需要先将字符串解析为JavaScript对象。
完整实现代码
function parseApiDataToSheet() { // 替换为你自己的API请求地址和请求参数 var url = "你的API请求地址"; var options = { method: "GET", // 按需添加headers、muteHttpExceptions等参数 }; try { var response = UrlFetchApp.fetch(url, options); var text = response.getContentText(); // 核心步骤:将JSON字符串解析为JS对象 var data = JSON.parse(text); // 提取所有条目数据(list下的键是item_id,值为条目详情) var items = Object.values(data.list); if (items.length === 0) { Logger.log("未获取到有效条目"); return; } // 定义你需要导出的表头,可按需增减字段 var headers = [ "条目ID", "标题", "链接", "摘要", "添加时间", "站点名称", "封面图链接" ]; // 组装表格数据 var tableData = [headers]; items.forEach(item => { var row = [ item.item_id, item.resolved_title, item.resolved_url, item.excerpt, // 时间戳转成可读日期,按需调整时区 new Date(item.time_added * 1000), // 提取嵌套的域名信息 item.domain_metadata?.name || "", item.top_image_url ]; tableData.push(row); }); // 写入当前活跃的Google Sheet,也可以指定ID打开对应表格 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 清空原有内容,不需要可以删除 sheet.clearContents(); // 批量写入数据,比逐行写入效率高 sheet.getRange(1, 1, tableData.length, tableData[0].length).setValues(tableData); Logger.log("数据写入完成,共" + (tableData.length -1) + "条记录"); } catch (e) { Logger.log("运行出错:" + e.message); } }
注意事项
- 可根据自己的需求调整
headers和对应的行字段,比如需要保存收藏状态、字数等可以直接加对应的字段即可 - 如果API请求需要鉴权,记得在
options的headers里添加对应的Authorization等参数 - 时间戳转换的时区默认使用脚本所在时区,可通过
Utilities.formatDate自定义日期格式
内容的提问来源于stack exchange,提问作者Shantanu
相关产品推荐
相关产品推荐

