英文原文:Json.NET Updates: Merge, Dependency Injection, F# and JSONPath Support
Json.NET 6.0 今年一共发布了 4 个版本的更新,其中最近一次发生在上周。经过这几次更新,加入了一些新的特性,包括一些F#专有的特性,对 JSONPath 查询的支持,与依赖注入框架的集成,支持合并 JSON 对象,以及其它更多特性。
.NET 框架本身自带了一些序列化器,包括数据契约(Data Contract)JSON 序列化器和JavaScriptSerializer,不过在特性与性能上还是存在着提升空间。JSON.NET 弥补了这部分的不足,它成为了在 .NET 社区中非常流行的一款开源替代产品。JSON.NET 带来了一些新的特性,例如 LINQ-to-JSON、支持 BSON、支持匿名类型、支持流行的 ORM 框架(EF 和 NHibernate)等等,这些是 .NET 框架本身所不具备的功能。不仅如此,它在性能上的表现也更加出色。(请对照一下这份特性比较与性能数据详细分析)
Json.NET 在今年所发布的一些重要特性进一步提高了它的功能:
这一功能类似于 jQuery 中的 extend 方法,但它还支持递归,并且在处理数组时提供了更多选择。在合并数组(包括那些内嵌在对象中的数组)时,你可以指定是按位置进行连结或是进行归并(union),或者是完全替换。
合并功能同样支持 LINQ-to-JSON。看一下这个测试能够帮助你更好地理解该特性,以及它所支持的各种用例。
其它一些有趣的特性还包括反序列化嵌套的 DataTable 对象,以及嵌入 DataTable 对象中的数组,支持 JSON 文件中的单行注释,支持 Windows Phone 8.1 和其它一些特性。更多细节请查看 James Newton-King 所发布的帖子。
另一个值得关注的高性能 .NET 第三方序列化工具是 ServiceStack.Text(现如今它是一种商业的开源软件)。