【问题标题】:System.Web.Script.Serialization.JavaScriptSerializer or System.Runtime.Serialization.Json.DataContractJsonSerializer?System.Web.Script.Serialization.JavaScriptSerializer 还是 System.Runtime.Serialization.Json.DataContractJsonSerializer?
【发布时间】:2009-05-06 20:54:58
【问题描述】:

这两者有什么区别?为什么要使用一个而不是另一个?

【问题讨论】:

标签: c# .net json


【解决方案1】:

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

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

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

更新

由于上面的链接已经失效,这里是另一个链接:http://kb.cnblogs.com/a/1454030

【讨论】:

  • 链接已断开,因为活动空间已移至 WordPress.com ......而且也没有重定向。这篇文章可以在其他任何地方找到吗?
  • 谁如此愚蠢地在没有说明原因的情况下投反对票 6 年的答案?
【解决方案2】:

就我个人而言,我会查看Json.NET - 这具有与 .NET 2.0 兼容的优势

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 有趣,马克。我不知道。感谢您指出这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多