3

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

4

3 回答 3

4

尝试在不序列化 javascript 代码的情况下逃脱。那样就是一个痛苦的世界。如果代码只能来自静态文件而不是数据库,那么调试会容易得多。相反,在您收到 JSON 响应并将适当的数据传递给适当的对象构造函数后对其进行处理。

如果您绝对必须对它们进行序列化,则在函数上调用 toString() 将返回其源代码。

于 2008-09-20T23:41:05.367 回答
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;}
}
于 2008-09-20T23:41:13.557 回答
1

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

我确实相信这"f = "+function() {}将为您提供一个可以评估的字符串版本:

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

对于良好的 json 处理,我会推荐原型,它具有将对象序列化为 json 的好方法。

于 2008-09-20T23:41:56.643 回答