.NET Json序列化方案选择
在C#中,进行JSON序列化和反序列化有多种方案可供选择,常用的是下面俩个
System.Text.Json
:这是.NET Core和.NET 5中内置的JSON序列化和反序列化库,提供了高性能和低内存消耗的JSON处理能力。
Newtonsoft.Json
:这是一个流行的第三方JSON处理库,广泛用于Framework中的JSON序列化和反序列化。
我们在使用过程中如何选择方案
.NET Framework
我们建议使用Newtonsoft.Json
System.Text.Json在.NET Framwork,需要通过Nuget安装。
分别序列化一个小对象,按秒表计时对比下输出耗时
1 System.Text.Json.JsonSerializer.Serialize(new TestMode() 2 { 3 ExePath = cAaExe, 4 Args = args, 5 }); 6 7 JsonConvert.SerializeObject(new TestMode() 8 { 9 ExePath = cAaExe, 10 Args = args, 11 });
首次序列化 System.Text.Json:248ms,Newtonsoft.Json:17ms
二次序列化 System.Text.Json:0ms,Newtonsoft.Json:0ms
所以.NET Framework中,我们使用Newtonsoft.Json,另外库的功能性、社区支持度、稳定性都比较好。
.NET
我们建议使用System.Text.Json
。库在.NET Core 3.0+ 和 .NET 5+内是自带的。
Newtonsoft.Json
在.NET Core和.NET 5+中也可以使用该库,但其性能和内存消耗略高于System.Text.Json
。
我们对比下延时:
首次序列化 System.Text.Json:31ms,Newtonsoft.Json:128ms
二次序列化 System.Text.Json:0ms,Newtonsoft.Json:0ms
另外,不要安装System.Text.Json的Nuget包,否则首次序列化耗时System.Text.Json:150ms。
值得说下,一些简单对象的序列化,不存在后续扩展、变更的场景,可以直接用字符串格式化,性能杠杠的。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)