在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。
值得说下,一些简单对象的序列化,不存在后续扩展、变更的场景,可以直接用字符串格式化,性能杠杠的。
标签:Newtonsoft,C#,Text,System,Json,NET,序列化 From: https://www.cnblogs.com/kybs0/p/17987512