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

为何谷歌应用脚本服务端不再向客户端传递值为null的对象键值对?

故障原因

这是Google Apps Script平台侧无公告更新导致的序列化逻辑变更:2023年末平台更新后,google.script.run 传递服务端返回值时,会自动删除所有值为null的键,不会将这类键值对传递到前端,导致依赖null值的组件无法正常运行,大量GAS开发者都遇到过同类故障,并非你的代码逻辑问题。

修复方案

最稳妥的解决方案是手动控制序列化/反序列化流程,绕过平台默认的异常序列化逻辑,操作步骤如下:

1. 修改服务端GS代码

不要直接返回JS对象,先将对象序列化为JSON字符串再返回:

function returnObject(){
  var object = {}
  object.a = "123"
  object.b = null
  object.c = 123
  console.log(object)  
  return JSON.stringify(object)
}

2. 修改前端JS代码

拿到服务端返回的字符串后,手动反序列化为JS对象,即可完整保留null值键:

function afterDataReceived(receivedData){
  const parsedData = JSON.parse(receivedData)
  console.log(parsedData)
  // 后续正常使用parsedData即可,此时parsedData.b为null,不会丢失
}

该方案经过大量开发者实测,完全兼容原有业务逻辑,不会产生额外问题。

备选兼容方案

如果不想改动原有序列化逻辑,也可以在服务端将null替换为自定义占位符(比如字符串__NULL__),前端拿到数据后再将占位符替换回null,适合需要兼容旧代码批量修改的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:45:02