首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Utilities.jsonStringify和对象方法

Utilities.jsonStringify和对象方法
EN

Stack Overflow用户
提问于 2012-12-27 15:03:42
回答 1查看 610关注 0票数 1

我还没有找到在调用Utilities.jsonStringify()时正确处理对象中的方法的方法。基本上,在从CacheService检索对象并对其应用Utilities.jsonParse()之后,我就不能使用它了。

有谁能给点提示吗?

提前谢谢。

Marc

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-27 19:53:02

json在字符串注册/解析时不包含函数。你必须使用一些自制的东西,比如:

代码语言:javascript
复制
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;
}

用法:

代码语言:javascript
复制
var obj=string2Func (Utilities.jsonParse(q.diff));
var str=Utilities.jsonStringify(func2String(diff));

当然,解包后的函数失去了所有的闭包。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14050763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档