当对象通过 google.script.run 传递时,对象属性值在服务器端丢失

2024-02-12

Preface

我发布此内容是为了警告其他人 google.script.run 中存在潜在错误,提出可能的解决方法,并征求社区对可能发生的情况的进一步见解。

问题

我将一个大数据对象传递给通过 google.script.run 调用的服务器端函数。这是调用 Google.script.run 之前客户端的样子(通过 JSON.stringify 获得并通过警报框输出):

{“roundStartTime”:“12:00:00”,“roundFinishTime”:“12:45:23”,“holeData”:{“1”:{“笔划”:1,“finishTime”:“12:02: 00"},"2":{"笔画":6,"完成时间":"12:04:00"},"3":{"笔画":7,"完成时间":"12:06:00" },"4":{"笔画":8,"完成时间":"12:08:00"},"5":{"笔画":9,"完成时间":"12:10:00"}, "6":{"笔画":10,"完成时间":"12:12:00"},"7":{"笔画":11,"完成时间":"12:14:00"},"8 ":{"笔画":12,"完成时间":"12:16:00"},"9":{"笔画":13,"完成时间":"12:18:00"},"10": {"笔画":1,"完成时间":"12:30:00"},"11":{"笔画":11,"完成时间":"12:33:00"},"12":{"笔画":8,"完成时间":"12:35:00"},"13":{"笔画":3,"完成时间":"12:37:00"},"14":{"笔画" :7,"完成时间":"12:39:00"},"15":{"笔画":10,"完成时间":"12:40:00"},"16":{"笔画":11 ,"完成时间":"12:42:00"},"17":{"笔画":13,"完成时间":"12:45:00"},"18":{"笔画":6}} }`

这是在服务器端接收到的相同对象(通过 JSON.stringify 获得并通过 Google 的 Logger.log 函数输出):

{"roundStartTime":"12:00:00","holeData":{"11":{"笔画":11,"finishTime":"12:33:00"},"12":{"笔画" :8,"完成时间":"12:35:00"},"13":{"笔画":3,"完成时间":"12:37:00"},"14":{"笔画":7 ,"完成时间":"12:39:00"},"15":{"笔画":10,"完成时间":"12:40:00"},"16":{"笔画":11,"完成时间":"12:42:00"},"17":{"笔画":13,"完成时间":"12:45:00"},"18":{"笔画":6,"完成时间" :null},"1":{"笔画":1,"完成时间":"12:02:00"},"2":{"笔画":6,"完成时间":"12:04:00" },"3":{"笔画":7,"完成时间":"12:06:00"},"4":{"笔画":8,"完成时间":"12:08:00"}, "5":{"笔画":9,"完成时间":"12:10:00"},"6":{"笔画":10,"完成时间":"12:12:00"},"7 ":{"笔画":11,"完成时间":"12:14:00"},"8":{"笔画":12,"完成时间":"12:16:00"},"9": {“笔画”:13,“完成时间”:“12:18:00”},“10”:{“笔画”:1,“完成时间”:“12:30:00”}}。“roundFinishTime”:“ 12:45:23"}

正如您所看到的,该对象看起来是相同的,只是“holeData”的属性在服务器端以不同的顺序出现。问题是NOT然而,对象属性的排序不同;这是我根本无法访问服务器端的属性。请继续阅读以了解更多详细信息。

在服务器端,我可以通过 JSON.stringifying 对 Object.keys(data.holeData) 的调用来确认holeData 属性具有以下(子)属性:

[“11”,“12”,“13”,“14”,“15”,“16”,“17”,“18”,“1”,“2”,“3”,“4”,” 5","6","7","8","9","10"]

但是,当我尝试访问这些对象中任何一个的“笔画”(子)属性时,例如:

data.holeData["1"].lines --或-- data.holeData["1"]["lines"], 我收到错误:

执行失败:类型错误:无法从未定义中读取属性“笔画”。

因此,当对象从客户端传输到服务器端时,发生了意外的情况。

注:我已仔细阅读google.script.run 函数的合法参数规则 https://developers.google.com/apps-script/guides/html/reference/run,并且我的对象似乎没有违反其中任何一个。它仅由字符串和整数数据组成。

解决方案

我通过将 JSON.stringify() 应用于客户端的对象,然后在服务器端应用 JSON.parse() 解决了该问题。当我以这种方式序列化/反序列化时,我能够访问服务器端的所有对象属性。

知道这个物体发生了什么吗?这是一个错误还是一个功能?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当对象通过 google.script.run 传递时,对象属性值在服务器端丢失 的相关文章

  • 将鼠标悬停在图像上以显示按钮,并且将鼠标悬停在实际按钮上时不会触发

    我试图让按钮在悬停在图像上时出现 以下作品 jQuery show image mouseenter function jQuery the buttons animate opacity 1 1500 mouseout function
  • ExtJS 4:克隆商店

    我正在尝试找出如何克隆Ext data Store不保留旧的参考 让我用一些代码更好地解释一下 这是源商店 var source Ext create Ext data Store fields name age data name foo
  • React延迟加载/无限滚动解决方案

    我花了一段时间才弄清楚如何使用优秀的延迟加载图像React Lazyload 组件 https github com jasonslyvia react lazyload 演示在滚动时延迟加载图像 但在测试时我无法获得相同的行为 罪魁祸首是
  • 捕获外部脚本文件中的 javascript 错误

    我有一点 JavaScript Jquery 工具的叠加层 http flowplayer org tools overlay index html 当放到错误使用它的页面上时可能会引发异常 我正在尝试优雅地处理它 我有一个通用的 wind
  • 未捕获类型错误:无法解析模块说明符“fs”。相对引用必须以“/”、“./”或“../”开头

    当我尝试在我自己的模块中导入 fs 模块时 例如import as fs from fs 浏览器控制台出现以下错误 Uncaught TypeError Failed to resolve module specifier fs Relat
  • 代码点火器 JSON

    你好 我使用 codeigniter 然后我从控制器中的数据库中回显输出 然后在我的视图文件中执行以下操作 但它没有显示任何内容 S 我的模型文件 function forumList this gt db gt select oversk
  • 为什么“dtoa.c”包含这么多代码?

    我将是第一个承认我对低级编程的整体知识有点稀疏的人 我理解许多核心概念 但我不经常使用它们 话虽这么说 我对需要多少代码感到非常惊讶dtoa c http www netlib org fp dtoa c 在过去的几个月里 我一直致力于用
  • React:React 如何确保在浏览器有机会绘制之后调用 useEffect?

    useLayoutEffect 的文档说 useLayoutEffect 内计划的更新将被刷新 在浏览器有机会绘制之前同步进行 useEffect 的文档说 与 componentDidMount 和 componentDidUpdate
  • 为什么我的 onclick 事件自动触发

    加载页面时最初显示 Hello World 我希望它仅在单击按钮后显示 我知道我可以通过向按钮添加内联事件侦听器来做到这一点 我可以只用脚本编写所有这些代码吗
  • 页面点击其他路径后 $timeout 继续运行

    我在用yo angular fullstack生成器来构建我的网站 当用户注册该网站时 它将发送一封带有链接的激活电子邮件 当用户点击该链接时 会显示激活成功并超时进入主页 但是 当超时未结束 用户点击页面中的任何其他链接时 会跳转到其他页
  • django ajax post 403被禁止

    使用 django 1 4 当我尝试从我的 javascript 做我的 django 服务器上的帖子时 我收到 403 错误 我的 get 工作正常 尽管问题仅出在帖子上 也尝试过 csrf exempt但没有运气 更新 我现在可以发布我
  • 将 html 嵌入 google 工作表

    我想通过创建一个 html 元素并将其放在电子表格顶部来在电子表格顶部显示 HTML 例如 如果我通过合并 A1 G5 在工作表顶部创建了一个大单元格 是否可以在其中嵌入 html div h1 Hello World h1 div 我注意
  • 如何在 OpenLayers 3 中删除监听器

    我做了一个copy https gis stackexchange com questions 178222 how to delete a listener in openlayers 3我在 stackoverflow 上提出的问题 因
  • Google 地图 v3 中标准缩放控件的样式

    有没有一种简单的方法可以在 Google Maps JavaScript API v3 中设置缩放控件的样式 我想要的只是改变标准图像 http maps gstatic com intl en ALL mapfiles mapcontro
  • IE6 丢失查询字符串

    我有一个使用 javascript 从查询字符串中获取值的页面window location 从网络服务器运行时效果很好 但如果我通过将其放在地址栏中使用 IE6 在本地运行它 c mysite index htm 网站创建的任何查询字符串
  • 响应式菜单:悬停子菜单显示错误

    简而言之 我根据教程创建了一个响应式菜单 当您将鼠标悬停在投资组合按钮上时 菜单应该显示子菜单 而在移动模式下 您需要按该按钮才能显示子菜单 效果很好 问题是该教程有一个错误 如果您在桌面模式下按组合按钮 子菜单将不会再次显示 除非您按 单
  • 地址更改时如何停止 Angular 重新加载

    我正在使用 Angular 的scrollTo and anchorScroll像这样 app controller TestCtrl function scope location anchorScroll scope scrollTo
  • 如何仅在第一次访问时弹出模态窗口

    我有一个模式窗口 当您访问某个页面时会弹出 访客必须选择我同意或我不同意 我需要一个漂亮的小 jquery 脚本 它会记住谁之前访问过该页面并同意 这样他们每次访问该页面时就不会弹出模式 有人可以推荐一个好的脚本来使用吗 这是代码 div
  • Javascript / jQuery - 转换特殊 html 字符

    我有一个pre元素中包含一些 html 代码 该代码中有特殊字符 例如 lt 所以它不会破坏页面 然后我有一个 javascript 函数 它获取此 pre 元素的内容 突出显示它 使用 codemirror 并用突出显示的文本替换元素内容
  • 使用 stopPropagation() 处理 React 事件委托

    我有一个 React 项目 应该可以放置在任何网站上 我的想法是 我托管一个 javascript 文件 人们放置一个具有特定 ID 的 div 然后 React 在该 div 中进行渲染 到目前为止 除了点击事件之外 这是有效的 这些事件

随机推荐

  • 追加 ArrayBuffer

    附加 组合 ArrayBuffer 的最佳方式是什么 我正在接收和解析具有各种数据结构的网络数据包 传入的消息被读入 ArrayBuffer 如果部分数据包到达 我需要存储它并等待下一条消息 然后重新尝试解析它 目前我正在做这样的事情 fu
  • DocumentApp 表:如何合并列中的单元格? [带有解决方法]

    我正在尝试使用 GAS 构建一个文档 该文档将包含一个表 该表的第一列中有一个单元格 第二列中有多个单元格 请参阅此处的示例 https docs google com document d 1e48FxrgZ7uakatBRIDAZZi
  • 使用 pandas 将多列取消列出为行

    我有一个像这样的 json 文件 A type1 2 26 288 type2 2 3 5 type3 23 26 288 B type1 2 26 288 type2 2 3 5
  • 异步请求未进入完成块

    下面的代码是为了让我更好地理解 NSURLConnection sendAsynchronousRequest queue completionHandler 有NSLog中的陈述completionHandler块 但是当我运行它时mai
  • mmap() 返回 EINVAL

    我无法获取mmap功能来工作 它返回EINVAL错误代码 void mapped mmap void map addr slide map size PROT WRITE PROT READ MAP PRIVATE MAP ANON bpr
  • 如何测试向量是否包含重复元素?

    R中如何测试向量是否包含重复元素 我想我找到了答案 使用重复 函数 a c 3 5 7 2 7 9 b 1 10 any duplicated a True any duplicated b False
  • 查找序列上的 for 循环中项目的位置[重复]

    这个问题在这里已经有答案了 可能的重复 在 Python for 循环中访问索引 https stackoverflow com questions 522563 accessing the index in python for loop
  • 图节点坐标评估[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这些之中的哪一个 https stackoverflow com questions 492893 graph drawing c lib
  • 如何计算 Selenium 测试相对于 Web 应用程序代码的代码覆盖率

    我需要将我的硒测试的代码覆盖率捕获到所覆盖的服务器代码 Web 应用程序源代码 中的源代码量 例如 登录功能的测试应捕获 Web 应用程序中登录功能所涵盖的代码量 否则需要知道它在完成的场景的 Web 应用程序代码中触及了哪个包或类 例如登
  • ifstream read 和 fread 不返回相同的数据,C++

    我的问题是 在文件描述符上使用 ifstream read 和 fread 似乎不会产生相同的结果 我打开一个文件并使用 ifstream open read 以 ios binary 模式读取其输入 然后我将此缓冲区写入文件 输出1 接下
  • 使用 lambda 创建 unordered_set

    我怎样才能使unordered set与拉姆达 我知道如何使用用户定义的哈希结构来实现它并且operator 我当前的代码是 include
  • 如何在 OSX 中的 .bash_profile 中获取外部文件?

    我在我的中定义了一些别名 bash profile文件和别名按预期工作 例如 alias python server python m SimpleHTTPServer 7070 而且 当我打开新终端时 输入python server打开一
  • 网络服务发现

    我正在考虑为 Android 客户端 和服务器 Windows 制作客户端 服务器应用程序 该应用程序的用途是从服务器 PC 开始 它允许用户扫描网络以查找与我的 C 应用程序兼容的设备 然后可以向客户端和服务器发送消息或从客户端和服务器发
  • Angular.js getElementById() 在 $scope 函数中不起作用

    el document getElementById id 在下面的函数内不起作用 el 为空 在浏览器调试中 我可以使用相同的代码提取该元素 我是 Angular js 的新手 我不能在附加到作用域的函数中使用常规 JavaScript
  • 如何决定Javascript和Jquery函数的执行顺序

    我正在调用两个函数 一个是 Java 脚本 一个是 Jquery 函数 单击Cancel button java脚本函数在Jquery函数之前执行 我想要完全相反 这是我的 HTML 代码
  • 如何检查 Mozilla 中是否安装了 firebug? [复制]

    这个问题在这里已经有答案了 可能的重复 检测Firebug的Javascript https stackoverflow com questions 398111 javascript that detects firebug 如何使用 J
  • 带有空括号 () 的 Lambda 表达式 [重复]

    这个问题在这里已经有答案了 我遇到过这样的代码 var vpAlias null var prices session QueryOver
  • 将 json 数据保存到 Django 模型

    我正在尝试将 json 数据保存到模型中 我正在获取所需的所有数据 如何将它们保存到模型中 views py def book api request if request method POST search request POST t
  • 如何判断 Detox 正在运行测试?

    我在用着Detox https github com wix detox在我的 React Native 项目中运行端到端测试 我还使用 faker js 来模拟我的 API 请求 并且我正在努力寻找一种方法来了解应用程序当前是否处于 测试
  • 当对象通过 google.script.run 传递时,对象属性值在服务器端丢失

    Preface 我发布此内容是为了警告其他人 google script run 中存在潜在错误 提出可能的解决方法 并征求社区对可能发生的情况的进一步见解 问题 我将一个大数据对象传递给通过 google script run 调用的服务