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

Google Apps Script解析JSON时点表示法取值返回null问题

问题根因

返回null是三个错误导致的:

  • 未做JSON反序列化:UrlFetchApp发起GET请求返回的初始结果是纯文本字符串,不是可直接通过点语法取值的结构化对象,必须先通过JSON.parse()做格式转换
  • 根结构判断错误:接口返回的内容最外层是[]包裹的对象数组,不是单个对象,直接在数组类型上调用点语法取内部对象属性,逻辑不成立
  • 属性名大小写不匹配:JSON结构里的所有字段名都是全大写格式(比如省份字段是PROVINCIA),JavaScript对象属性名严格区分大小写,你写的小写provincia匹配不到对应键,自然返回null
可直接运行的解析代码
function parseJsonData() {
  // 替换为你实际的GET请求逻辑,getContentText()拿到原始响应文本
  const rawText = UrlFetchApp.fetch("你的接口请求地址").getContentText();
  // 把JSON字符串转成可操作的数组对象
  const dataArr = JSON.parse(rawText);

  // 遍历单条记录测试取值
  dataArr.forEach((singleItem, idx) => {
    // 字段名必须和JSON里的全大写键完全一致
    Logger.log(`第${idx + 1}条记录省份值:${singleItem.PROVINCIA}`);
  });

  // 直接生成适配Google Sheets写入的二维数组,字段顺序和你要求的完全对应
  const sheetWriteData = dataArr.map(item => [
    item.NOMBRE,
    item.ACTIVO,
    item.CODIGO,
    item.CALLE,
    item.NUMERO,
    item.PROVINCIA,
    item.LOCALIDAD,
    item.ZONA,
    item.SUPERFICIE,
    item.CODIGOEXTERNO
  ]);
}
效果说明

代码运行后日志会正确打印每条记录的省份字段值,不会再返回null。生成的sheetWriteData变量是4行10列的二维数组,结构里的null、布尔值、数字类型都会原样保留,和你给出的首行示例数据格式完全匹配,后续要写入表格直接传入setValues()方法即可,不需要额外做结构调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:30:53