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

Asp.net 如何使用JSON方法序列化javascript对象?,asp.net,json,viewstate,Asp.net,Json,Viewstate,我正在寻找对JSON的增强,它还将序列化方法。我有一个充当对象集合的对象,并且希望序列化集合对象的方法。到目前为止我已经找到了。有什么想法吗?不要序列化javascript代码。这样的世界充满了痛苦。如果代码只能来自静态文件,而不是数据库,那么调试就会容易得多。相反,在接收到JSON响应后遍历它们,并将适当的数据传递给适当的对象构造函数 如果您必须对它们进行序列化,那么对函数调用toString()将返回其源代码。如果您使用WCF框架开发RESTful web服务,这是非常容易实现的。 只需使用

我正在寻找对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;}
}

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

虽然我相信
“f=“+function(){}
将为您提供一个to-string版本,您可以评估:

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

对于良好的json处理,我推荐prototype,它有很好的方法将对象序列化为json。

如果它是一个具有许多函数的对象,会怎么样?有什么方法可以一次序列化所有内容?