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

时间:2009-05-06 20:54:58

标签: c# .net json

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

3 个答案:

答案 0 :(得分:14)

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

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

<强> JavaScriptSerializer 另一方面,这门课程更适合快速序列化,这是一种更牛仔的方法。错误检查较少,对序列化的属性控制较少。

更新

由于上述链接已失效,此处是另一个链接:http://kb.cnblogs.com/a/1454030

答案 1 :(得分:9)

就个人而言,我会看Json.NET - 这样做的优点是兼容.NET 2.0

答案 2 :(得分:1)

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