我正在寻找JSON的增强功能,它也会序列化方法。我有一个对象作为对象的集合,并希望序列化集合对象的方法。到目前为止,我找到了 ClassyJSON 。有什么想法吗?

有帮助吗?

解决方案

我认为序列化方法不是一个好主意。如果您打算运行代码服务器端,那么您可以打开攻击。如果你想在客户端运行它,你最好只使用本地方法,可能引用你将在序列化对象中使用的方法的名称。

我确实相信," f =" + function(){} 会产生一个你可以评估的字符串版本:

var test = "f = " + function() { alert("Hello"); };
eval(test)

对于良好的json处理,我建议使用prototype,它有很好的方法将对象序列化为json。

其他提示

尝试在不序列化JavaScript代码的情况下离开。那种方式就是痛苦的世界。如果代码只能来自静态文件而不是来自数据库,那么调试会容易得多。相反,在收到JSON响应后将它们传递给适当的对象构造函数。

如果你绝对必须序列化它们,在函数上调用toString()将返回它的源。

如果您使用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;}
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top