【问题标题】:Is a JSON serialization deserialization library of any use是一个任意使用的JSON序列化反序列化库
【发布时间】:2011-12-04 06:46:15
【问题描述】:

JSON.net 库有什么特别之处,而 JavaScriptSerializer 类却没有?

  1. 是否值得将其包含在通过 SOAP Web 服务和 javascript 进行通信的大型企业应用程序中?

  2. 通过在项目中包含此类库,我可以获得哪些性能增益/开发增益?

  3. 是否有类似的库可以帮助更快、更好、更智能地进行对象序列化/反序列化?

【问题讨论】:

标签: c# asp.net json web-services serialization


【解决方案1】:
  1. 是的。绝对地。仅仅因为 Microsoft 构建的 .NET 框架默认提供某些东西并不意味着它是最好的使用方法。在我看来,应用程序的大小以及部署的位置几乎不是决定是否应该使用 JSON.net 之类的库的决定因素。查看您自己的需求并将其用作驱动因素,而不是应用的大小。
  2. 大量。 JSON.net 非常快,具有更多功能,并且是一个使用起来更加“友好”的 API。我会毫不犹豫地推荐它用于任何应用程序。我个人在企业应用程序、开源库和 WP7 游戏中使用过它。
  3. 有很多类似的库。 JsonFx 是其中之一。它更快、更好、更智能吗?是与否,是与否,是与否。这种事情没有金子弹。您应该调查您的需求并找出适合您的需求。我几乎可以保证,如果您乐于使用开箱即用的 JavascriptSerializer,您不会(不能!)对这些其他选项的功能和速度感到失望。

HTH。

【讨论】:

  • 你有没有比较黑白内置序列化程序和 JSON.net 的参考资料
【解决方案2】:

我不太了解这些库的详细信息。我需要做的一件事是序列化枚举。如果我使用默认序列化程序,它将序列化枚举的值,但我想获得名称。 所以我像这样使用Newtonsoft.Json (JSON.net) 做到了这一点,

[JsonConverter(typeof(StringEnumConverter))]
public  SearchResultType SearchResultType { get; set; }

【讨论】:

  • 没什么好买的,因为我的应用程序在客户端脚本上有等效的枚举。这将转换回名称。此外,我的对象将是强类型字符串和数组,因此无法说服我。 But yes Microsoft missed Enum serialization from their list wtf
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
  • 2011-10-13
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多