在调用 Utilities.jsonStringify() 时,我还没有找到一种方法来正确处理对象中的方法。基本上,在从 CacheService 检索对象并将 Utilities.jsonParse() 应用于它之后,我无法使用它。
有人有提示吗?
提前致谢。
马克
在调用 Utilities.jsonStringify() 时,我还没有找到一种方法来正确处理对象中的方法。基本上,在从 CacheService 检索对象并将 Utilities.jsonParse() 应用于它之后,我无法使用它。
有人有提示吗?
提前致谢。
马克
json 在字符串化/解析时不包含函数。你必须使用一些自制的东西,比如:
function func2String(obj) {
var res={};
for (x in obj) {
var value=obj[x];
res[x]=(typeof(value)=='function')?value.toString():value;
}
return res;
}
function string2Func (obj) {
var res={};
for (x in obj) {
var value=obj[x];
if(typeof(value)!='string') {
res[x]=value;
}
else {
res[x]=(value.substring(0,9)=='\nfunction')?eval('('+value+')'):value;
}
}
return res;
}
用法:
var obj=string2Func (Utilities.jsonParse(q.diff));
var str=Utilities.jsonStringify(func2String(diff));
当然,解压后的函数丢失了所有的闭包。