我正在寻找JSON的增强功能,它也会序列化方法。我有一个对象作为对象的集合,并希望序列化集合对象的方法。到目前为止,我找到了ClassyJSON。有什么想法吗?
答案 0 :(得分:4)
尝试在不序列化JavaScript代码的情况下离开。那种方式就是痛苦的世界。如果代码只能来自静态文件而不是来自数据库,那么调试会容易得多。相反,在收到JSON响应后将它们传递给适当的对象构造函数。
如果你绝对必须序列化它们,在函数上调用toString()将返回它的源。
答案 1 :(得分:1)
如果您使用WCF框架开发RESTful Web服务,那很容易实现。 只需使用DataContract,DataMember属性创建具有所需集合的数据结构类。
[DataContract]
public class Foo
{
[DataMember]
public string FooName {get;set;}
[DataMember]
public FooItem[] FooItems {get;set;}
}
[DataContract]
public class FooItem
{
[DataMember]
public string Name {get;set;}
}
答案 2 :(得分:1)
我认为序列化方法不是一个好主意。如果您打算运行代码服务器端,那么您可以打开攻击。如果你想在客户端运行它,你最好只使用本地方法,可能引用你将在序列化对象中使用的方法的名称。
我确实相信"f = "+function() {}
会产生一个你可以评估的字符串版本:
var test = "f = " + function() { alert("Hello"); };
eval(test)
对于良好的json处理,我建议使用prototype,它有很好的方法将对象序列化为json。