Google Sheets中Apps Script调用API时如何提取JSON的unpaid字段值
直接提取目标字段的实现方案
当前全量转存响应再通过MID函数截取的方案稳定性不足:只要API调整字段顺序、新增字段、修改返回内容转义规则,截取结果就会错位。由于接口返回的是标准JSON结构,完全可以在脚本层直接解析提取目标字段,不需要全量转存。
具体调整逻辑
- 移除全量响应转存逻辑,将接口返回文本解析为JavaScript对象
- 按照JSON嵌套路径定位
unpaid字段,直接提取数值写入目标单元格
调整后的可运行脚本
function callNumbers() { // 替换为你的实际API请求地址 const targetApi = ""; const response = UrlFetchApp.fetch(targetApi, {muteHttpExceptions: true}); const responseContent = response.getContentText(); // 解析JSON响应 const responseData = JSON.parse(responseContent); // 按照嵌套层级提取unpaid字段值:该字段位于顶层data对象下 const unpaidNumber = responseData.data.unpaid; // 直接将提取的数值写入对应单元格(第49行、第7列) const activeSheet = SpreadsheetApp.getActiveSheet(); activeSheet.getRange(49, 7).setValue(unpaidNumber); }
关键说明
- 字段路径需匹配嵌套层级:从示例响应看,
unpaid位于顶层data对象内部,取值路径为responseData.data.unpaid,若错写为顶层取值会返回空值 - 可补充基础异常判断,避免接口临时故障导致脚本中断:
可选异常拦截片段,可嵌入脚本对应位置
if (response.getResponseCode() !== 200) { activeSheet.getRange(49,7).setValue("接口请求异常"); return; } if (!responseData?.data) { activeSheet.getRange(49,7).setValue("返回数据结构异常"); return; } - 该方案完全替代原有MID函数截取逻辑,提取结果不受字段位置、返回内容格式调整的影响。
内容的提问来源于stack exchange,提问作者Daniel Barnett
相关产品推荐
相关产品推荐

