我还没有找到在调用Utilities.jsonStringify()时正确处理对象中的方法的方法。基本上,在从CacheService检索对象并对其应用Utilities.jsonParse()之后,我就不能使用它了。
有谁能给点提示吗?
提前谢谢。
Marc
发布于 2012-12-27 19:53:02
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));当然,解包后的函数失去了所有的闭包。
https://stackoverflow.com/questions/14050763
复制相似问题