转自:陈鑫伟
cnblogs.com/Dogwei/p/11444426.html
Json简介
Json (Java对象符号)是一种轻量级的数据交换格式。
作为目前最流行的数据交换格式,也是各大开源贡献者的战场,比如阿里爸爸的fastjson(java),腾讯的rapidjson(c++)。
然而。NET没有得到大厂商的青睐,而Json解析库的。NET在Swifter.Json之前并不完美
Swifter简介。数据
更快。Json是一个功能强大、易于使用、稳定且高性能的Json序列化和反序列化工具。Net平台。
开源github:https://github.com/Dogwei/Swifter.Json
更快者的力量。数据
1.支持所有已知的对象结构。Net,包括深循环结构、引用类型属性等。
2.支持几乎所有常用的数据类型,轻松定制多种方案中类型的序列化行为,未来还会继续增加。
3.支持缩进Json,忽略Null值、0值、“value”等。支持使用{ " $ Ref ":#/Target " }表示重复引用,或将循环引用序列化为Null等。支持设置最大深度。
4.支持。Net Core 2.0+,.. Net Framework 2.0+,。Net Standard 2.0+,Xamarin,Unify,Mono等平台。
5.更快。Json几乎没有BUG,因为它有几个在线项目在运行,每次发布都会通过我们自己的单元测试和Newtonsoft的单元测试。Json和Spanjson保证其稳定性。如果你遇到问题,可以在Github上发布一期,我们会尽力帮助你。
6.完整全面的API中文文档,每个公共类型和方法都有中文描述,Github上的Wiki文档(目前主要是维护文档)。
为什么要反复造轮子?
目前,Json库在。NET平台有一些明显的缺点:有的简单易用,但性能不高,有的高但不稳定,稳定低且过于复杂。
我们迫切需要一个强大、稳定、高性能、易用的Json序列化工具!
如此迅捷。Json被创建。
更快。Json库参考
更快。核心:这是一个工具包,可以为类库开发者提供很大的帮助。更快。Json就是基于此。它提供了一个高效的数据读写API,一个高效的数学算法,里面没有数据信息。Net CLR,解决了不同平台版本之间的差异问题。稍后,我们将开发一款Swifter。基于该库的MessagePack(已开发并将发布)。这个库从300~400KB到400KB不等(平台不同)。
更快。不安全:这是一个IL代码写的库。因为提供的操作类似于系统提供的功能。runtime . compressorservices . unsafe,它被命名为swifter.unsafe。此库的大小为5KB。
更快。Json:实现Swifter的IValueReader。Json,IValueWriter实现任意对象的序列化和反序列化。主要代码在JsonSerializer (IValueReader,IValueWriter)和JsonSerializer(实现IValueReader)中。JsonFormatter提供API重载,现在支持全异步API。库大概86KB。
雨燕的表现。数据
的测试结果。NET Core 3.0预览版7
与Newtonsoft相比。Json,提高5到10倍左右。虽然目前很多Json库号称性能很高,但其实除了Swifter,我只认Spanjson。Json,但是它的缺点太明显了,它只支持。Net Core 2.1+而且稳定性不好。
如果不想用Swifter。Json,建议你用Newtonsoft。Json毕竟除了性能都是优点。
还有一个与性能密切相关的特性:小分配。
顾名思义,就是分配内存的大小。比如一个程序对一个数组进行反序列化的时候,由于数组的长度是未知的,所以大部分Json工具在这个过程中会反复创建更大的数组,相当耗时耗资源。
更快。Json利用池技术完美的解决了这个问题。
Spanjson也是通过Core上的ArrayPool池解决的,所以我给Spanjson点了小星星。
简单使用
有关更多用法和文档,请参见Github上的维基。
最后,我们在。NET平台
1.《iswifter .NET平台迄今为止性能最佳的Json序列化库【开源】》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《iswifter .NET平台迄今为止性能最佳的Json序列化库【开源】》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/1595141.html