google-apps-script - 我在脚本属性中存储了一个对象,但它以字符串的形式返回
问题描述
我将我的简单对象(只有七个值)存储在脚本属性中,但是当我取回它时,它似乎是一个字符串。有没有一种快速的方法可以把它扔回去?如有必要,我可以将这些保存为单独的属性,但这不太整洁。
var myObject = {
email: range[0][1],
sitecode: range[0][2],
x: range[0][3],
x: range[0][4],
x: range[0][5],
region: range[0][6],
x: range[0][7]
}
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty('globals', myObject);
到目前为止一切顺利,那么我们称之为
var userProperties = PropertiesService.getUserProperties();
var myObject = userProperties.getProperty('globals');
Logger.log(myObject);
Logger.log(userProperties.getKeys());
Logger.log(myObject.region);
Logger.log(myObject['region']);
但得到这个
[19-05-02 13:59:22:626 PDT] {sitecode=TEST, x=x, x=x, x=x, region=North America, x=x, email=x}
[19-05-02 13:59:22:642 PDT] [globals]
[19-05-02 13:59:22:643 PDT] undefined
[19-05-02 13:59:22:643 PDT] undefined
我希望最后两个记录器行返回“北美”。事实上,他们没有对我说这是一个字符串而不是一个对象。
解决方案
两者都将它们的键PropertiesService
和CacheService
值存储为字符串,因此当您尝试保存对象时,会存储其字符串表示形式。
一种解决方案是利用JSON.stringify()
首先将对象序列化为 JSON 字符串,然后将其存储,然后在您稍后检索对象时使用JSON.parse()
来取回原始对象。
推荐阅读
- java - 导出可运行 Jar Eclipse
- c++ - 包含命名空间时已定义的链接错误变量
- python - 索引超出了 MoviePy 导出的范围
- elasticsearch - 在elasticsearch中聚合后查询?
- python-3.x - 这些 Peewee 查询过滤器表单有什么区别
- python - Python curses 显示错误,我无法处理
- node.js - 为什么我在编译 ejs 时在 /path/ 中收到“意外的令牌 '<'”错误?
- python - 我使用 pyinstaller 将 .exe 文件形成为我编写的 python 代码
- python - 线程 For 循环功能卡住
- python-3.x - 带有 PYSNMP 的 Python 集