我将简单对象(只有七个值)存储在脚本属性中,但是当我找回它时,它似乎是一个字符串。是否有快速的方法可以将其退回?如有必要,我可以将它们另存为单独的属性,但这不太整齐。
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
我希望最后两行记录器返回“ North America”。事实上,他们并没有对我说这不是一个字符串。
答案 0 :(得分:2)
PropertiesService
和CacheService
都将它们的键和值存储为字符串,因此,当您尝试保存对象时,其字符串表示形式也会被存储。
一种解决方案是利用JSON.stringify()
首先将对象序列化为JSON字符串,然后将其存储,然后在以后检索对象时,使用JSON.parse()
来取回原始对象。