使用google.script.run传递对象时服务端属性丢失问题求助
关于google.script.run传递大型数据对象时属性丢失的问题分享及临时方案
最近碰到了google.script.run的一个潜在bug,特意整理出来提醒大家避坑,同时分享临时解决方案,也想听听社区里各位的深入分析。
问题详情
我在用google.script.run调用服务端函数时,传递了一个大型数据对象。调用前在客户端用JSON.stringify()查看,对象是完整的,比如能看到{"roundStartTime":"12:00:00","roundFinishTime":"12:45:...这样的结构,但服务端接收到这个对象时,部分属性居然丢失了,排查了很久才确认是传递环节出的问题。
临时解决方案
经过几次测试,找到了两个可行的临时处理方法:
- 客户端先把大型对象用
JSON.stringify()转成字符串,传递到服务端后再用JSON.parse()解析回对象。这种方式绕开了google.script.run默认的序列化逻辑,能完整保留所有属性。 - 如果对象里包含非必要的大字段,可以拆分对象,分多次调用服务端函数传递数据,减少单次传输的数据量,也能降低属性丢失的概率。
征集社区见解
有没有大佬遇到过同样的问题?或者对这个bug的成因有更深入的分析?比如是不是google.script.run对序列化对象的大小、属性数量有隐藏限制?欢迎在评论区一起交流讨论!
内容的提问来源于stack exchange,提问作者SpeedGolfer
相关产品推荐
相关产品推荐

