System.Web.Script.Serialization.JavaScriptSerializer或System.Runtime.Serialization.Json.DataContractJsonSerializer?

两者有什么区别? 你为什么要用另一个呢?

在此处找到: http : //aaron-powell.spaces.live.com/blog/cns!91A824220E2BF369!150.entry

DataContractJsonSerializer DataContractJsonSerializer的主要用途是与WCF一起使用,因为一个序列化是WCF的一个重点。 此外,它还可以更好地处理复杂的类,这些类只有某些属性可用于序列化。 这个类的类型更强,对它处理的类型有更多的了解,对于格式错误的JSON有更好的error handling。

JavaScriptSerializer另一方面,这个类更适合快速序列化,这是一个更牛仔的方法。 错误检查较少,对序列化的属性控制较少。

更新

由于以上链接已经死亡,这里有另一个链接: http : //kb.cnblogs.com/a/1454030 。

就个人而言,我会看一下Json.NET–它具有兼容.NET 2.0的优点

JavaScriptSerializer在框架3.5中标记为过时。 你不应该因此而使用它。 但是,回到你的问题。 JavaScriptSerializer不要求将类标记为[Serializable]或[DataContract],而是将DataContractJsonSerializer标记为。 如果您编译的类无法使用属性标记,则可能需要使用较旧的JSON序列化程序。