You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Google Script在Google Sheets中提取JSON指定字段值

解决方法:从API返回的JSON中提取特定值写入Google Sheets

没问题!你只需要在处理API响应时解析JSON,然后定位到目标字段即可,具体实现如下:

步骤1:修改你的API请求代码

假设你之前是直接把API返回的原始文本写入单元格,那你需要加入JSON解析的逻辑。这里以Google Apps Script为例(这是向Google Sheets拉取外部API数据最常用的方式):

原错误代码(导致写入完整JSON)

function fetchAndWriteData() {
  const apiUrl = "你的外部API地址";
  const response = UrlFetchApp.fetch(apiUrl);
  // 直接写入原始响应文本,所以显示完整JSON
  SpreadsheetApp.getActiveSheet().getRange("A1").setValue(response.getContentText());
}

修改后的正确代码

function fetchAndWriteData() {
  const apiUrl = "你的外部API地址";
  const response = UrlFetchApp.fetch(apiUrl);
  
  // 将JSON字符串解析为可操作的JavaScript对象
  const parsedData = JSON.parse(response.getContentText());
  
  // 从解析后的对象中提取目标cost值
  // 注意:返回的data是数组,取第一个元素的cost属性
  const targetCost = parsedData.data[0].cost;
  
  // 将提取的值写入指定单元格
  SpreadsheetApp.getActiveSheet().getRange("A1").setValue(targetCost);
}

步骤2:(可选)增加容错处理

如果API返回的data数组可能为空(比如没有数据的情况),建议加个判断避免脚本报错:

function fetchAndWriteData() {
  const apiUrl = "你的外部API地址";
  const response = UrlFetchApp.fetch(apiUrl);
  const parsedData = JSON.parse(response.getContentText());
  
  // 先检查data数组是否有内容
  const targetCost = parsedData.data.length > 0 ? parsedData.data[0].cost : "无可用数据";
  
  SpreadsheetApp.getActiveSheet().getRange("A1").setValue(targetCost);
}

关键逻辑说明

  • JSON.parse():把API返回的JSON格式字符串转换成JavaScript对象,这样你就能通过点语法或索引访问里面的属性
  • 你的API返回结构是{"data":[{"cost":"$440.00"}],...},所以parsedData.data是一个数组,parsedData.data[0]取数组里的第一个对象,再通过.cost就能拿到$440.00这个值

内容的提问来源于stack exchange,提问作者itzmurd4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:13:11