我在脚本属性中存储一个对象,但它以字符串形式返回



我正在将我的简单对象(仅七个值(存储在脚本属性中,但是当我恢复它时,它似乎是一个字符串。有什么快速的方法来退缩吗?如有必要,我可以将这些作为单个属性保存,但这还不那么整洁。

  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

我希望最后两条记录器线返回"北美"。他们不对我说这是一个字符串而不是对象的事实。

PropertiesServiceCacheService都将其键和值存储为字符串,因此,当您尝试保存对象时,其字符串表示。

一种解决方案是利用JSON.stringify()首先将对象序列化为JSON字符串,然后将其存储,然后将其检索时,请使用JSON.parse()来获取原始对象。

最新更新