如何使用JSON方法序列化javascript对象?

时间:2020-03-06 14:29:46  来源:igfitidea点击:

我正在寻找对JSON的增强,该增强还将对方法进行序列化。我有一个对象,它充当对象的集合,并且还希望序列化集合对象的方法。到目前为止,我已经找到了ClassyJSON。有什么想法吗?

解决方案

尝试逃脱而不序列化javascript代码。那就是一个痛苦的世界。如果代码只能来自静态文件,而不能来自数据库,则调试会容易得多。相反,请在收到JSON响应后遍历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;}
}

我认为序列化方法从来都不是一个好主意。如果打算在服务器端运行代码,则容易受到攻击。如果要在客户端运行它,最好不要使用本地方法,最好引用要在序列化对象中使用的方法的名称。

我确实相信,尽管" f =" + function(){}会为我们提供一个to string版本,我们可以评估:

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

为了更好地处理json,我建议我们使用原型,该原型具有将对象序列化为json的出色方法。