2

我有一个格式如下的数组:

议程项目= [{“主题”:“blah”,“描述:”blah”},{“主题”:“blah2”,“描述”:“blah2”}]。

我需要在处理程序中更新此数组中的值,并且处理程序不允许修改全局变量。我知道我必须使用 CacheService 或 ScriptProperties。但是,我似乎无法使其工作:

如果我使用 CacheService,我会得到如下信息:“[object oject][object object]”

CacheService.getPublicCache.put('agenda', agendaItems);

如果我使用 ScriptProperties,我会得到如下信息:“”[Ljava.lang.Object;@429bd3a7”

ScriptProperties.setProperty('agenda', agendaItems');

我做错了还是有更好的方法?任何建议表示赞赏。

4

1 回答 1

1

Cache类适用于字符串。您必须使用Utilities.jsonStringifyUtilities.jsonParse方法将数组转换为字符串,反之亦然。这是我使用的稍微修改过的代码

this.getData = function(id, cacheKey) {
  var cache = CacheService.getPrivateCache();
  var cachedString = cache.get(cacheKey);
  var lstData;
  if (cachedString == null) {
    lstData = getNotCachedData_(id);
    cache.put(cacheKey, Utilities.jsonStringify(lstData));
  }
  else {
    lstData = Utilities.jsonParse(cachedString);
  }
  return lstData;
}

ScriptProperties服务也适用于字符串。由于文档不完整value参数有 typevar和 not 并不明显String,但确实如此。

于 2012-08-28T19:40:58.447 回答