【发布时间】:2009-05-06 20:54:58
【问题描述】:
这两者有什么区别?为什么要使用一个而不是另一个?
【问题讨论】:
-
有用的链接SO问题:stackoverflow.com/questions/536359/…
这两者有什么区别?为什么要使用一个而不是另一个?
【问题讨论】:
在这里找到:http://aaron-powell.spaces.live.com/blog/cns!91A824220E2BF369!150.entry
DataContractJsonSerializer DataContractJsonSerializer 的主要目的是与 WCF 一起使用,因为一个序列化是 WCF 的一大焦点。此外,它还可以更好地处理只有某些属性可用于序列化的复杂类。 这个类的类型更强,对它所处理的类型有更多的了解,并且对格式错误的 JSON 有更好的错误处理。
JavaScriptSerializer 另一方面,这个类更适合快速序列化,它是一种更牛仔的方法。错误检查较少,对哪些属性进行序列化的控制较少。
更新
由于上面的链接已经失效,这里是另一个链接:http://kb.cnblogs.com/a/1454030。
【讨论】:
就我个人而言,我会查看Json.NET - 这具有与 .NET 2.0 兼容的优势
【讨论】:
JavaScriptSerializer 在框架 3.5 中被标记为已过时。你不应该因为这个原因使用它。但是,回到你的问题。 JavaScriptSerializer 不需要将类标记为 [Serializable] 或 [DataContract],但 DataContractJsonSerializer 需要。如果您编译了无法使用属性标记的类,则可能需要使用较旧的 JSON 序列化程序。
【讨论】: