千家信息网

.Net 平台之Swifter.Json 序列化库的示例分析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,.Net 平台之Swifter.Json 序列化库【开源】的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Json 简介Json
千家信息网最后更新 2026年11月02日.Net 平台之Swifter.Json 序列化库的示例分析

.Net 平台之Swifter.Json 序列化库【开源】的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Json 简介

Json (JavaScript Object Notation) 是一种轻量级的数据交换格式。它作为目前最欢迎的数据交换格式,也是各大开源贡献者的必争之地,如:阿里爸爸的 fastjson(java),腾讯的 rapidjson(c++) 等。但 .Net 却没有得到大厂的青睐,在 Swifter.Json 之前 .Net 的 Json 解析库都不完美。

Swifter.Json 简介

Swifter.Json 是 .Net 平台上一个功能强大,简单易用,稳定及高性能的 Json 序列化和反序列化工具。

Github : https://github.com/Dogwei/Swifter.Json

码云 : https://gitee.com/eway0/Swifter

Swifter.Json 强大之处

1:支持 .Net 已知所有对象结构,包括深度循环结构,引用类型属性等。

2:支持几乎所有常用的数据类型,并多方案轻松自定义类型的序列化行为,后续将持续增加。

3:支持缩进 Json,忽略 Null 值 0 值 "" 值等,支持使用 { "$Ref" : "#/Target" } 表示重复引用,或将循环引用序列化为 Null 等,支持设置最大深度。

4:支持 .Net Core 2.0+,.Net Framework 2.0+,.Net Standard 2.0+,Xamarin,Unify,Mono 等平台。

5:Swifter.Json 几乎是无 BUG 的,因为它已有多个上线项目在运行,且每次发布都会经过我们自己单元测试和 Newtonsoft.Json 和 Spanjson 的单元测试来确保它的稳定性,如果您遇到了问题,可以在 Github 上发布一个 issue,我们会尽力帮助您。

6:完整全面的 API 中文文档,每个公开的类型和方法都有中文说明,也有 Github 上的 Wiki 文档 (现主要维护文档)。

为什么要重复造轮子?

目前 .Net 平台上的 Json 库都存在一些明显的缺点:一些虽然简单易用,但是性能不高,一些性能高却不稳定,稳定的有性能低且过于复杂。

我们迫切需要一个强大,稳定,高性能且易于使用的 Json 序列化工具!

所以 Swifter.Json 被制作出来了。

Swifter.Json 的库引用

Swifter.Core:这是一个工具包,它可以为类库开发者提供巨大的帮助,Swifter.Json 基于它。它提供了高效的数据读写 API,高效的数学算法以及 .Net CLR 无数据信息,以及解决各平台版本之间的差异问题等,后期我们将基于这个库开发一个 Swifter.MessagePack (已开发好,待发布)。这个库 300~400KB 之间(各平台有差异)。

Swifter.Unsafe:这是一个 IL 代码编写的库,因为提供的操作与 System.Runtime.ComplierServices.Unsafe 提供的功能类似,所以取名叫 Swifter.Unsafe,这个库大慨 5KB。

Swifter.Json:实现 Swifter.Json 的 IValueReader, IValueWriter 即实现了对任意对象执行序列化和反序列化,主要的代码在 JsonSerializer (实现 IValueWriter) 和 JsonDeserializer (实现 IValueReader)中,JsonFormatter 提供 API重载,现在已支持全异步 API。这个库大概 86KB。

Swifter.Json 的性能

.Net Core 3.0 Preview 7 的测试结果

相比 Newtonsoft.Json 提高了 5 到 10 倍左右,虽然目前已有许多 Json 库号称高性能,但实际上我认可的除Swifter.Json只有 Spanjson,但它缺点太明显,仅支持 .Net Core 2.1+ 且稳定性不好。如果您不愿意使用 Swifter.Json,那本人建议您使用 Newtonsoft.Json,毕竟它除了性能之外全是优点。

还有一个与性能密切相关一个特性:小分配。顾名思义就是分配的内存大小,举例:当程序在执行反序列化数组操作时,因为对数组长度未知,所以多数 Json 工具都在这个过程中反复的创建更大的数组,这个过程相当耗时且耗资源。Swifter.Json 已使用池技术完美解决这个问题。Spanjson 也使用 Core 上的 ArrayPool 池解决,所以我为 Spanjson 点了小星星。

看完上述内容,你们掌握.Net 平台之Swifter.Json 序列化库【开源】的示例分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

序列 支持 平台 性能 数据 问题 工具 类型 强大 数组 文档 方法 高性能 开发 测试 示例 分析 明显 之间 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 西安纸贵互联网科技有限公司 A股互联网金融科技公司 互联网科技深圳 中资互联网科技 电子科技大学互联网 互联网科技ppt模板 掌上梦互联网科技 上海万想互联网科技 互联网科技大会 博兴的互联网电子科技公司 济南华为互联网科技产业总部基地 顶级互联网科技成果有哪些 贵州叶脉互联网科技有限公司所属行业 允成互联网科技有限公司融资 上海京穆互联网科技有限公司 郑州欣桑互联网科技有限公司 易企秀互联网科技是做什么的 互联网科技企业商标注意事项 中国互联网公司的科技投入 陕西彩京云互联网科技有限公司 喔噻互联网科技有限公司 互联网科技工作委员会毛军 国智互联网科技 互联网金融监管科技数据 上海互联网科技有限公司 互联网金融科技委员会 丰台科技园 互联网公司 博兴的互联网电子科技公司 广州优美互联网科技 西安有哪些互联网高科技企业
0