如何使用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的出色方法。