轻巧便利的Json序列化和反序列化工具
Lightweight and convenient tool for JSON serialization and deserialization
LHZ.FastJson重构了序列化方法,拥有极高的序列化性能,下表为LHZ.FastJson、NewtonJson和System.Text.Json的序列化性能测试
BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1706 (21H2)
Intel Core i7-9700K CPU 3.60GHz (Coffee Lake), 1 CPU, 8 logical and 8 physical cores
.NET SDK=6.0.201
[Host] : .NET 6.0.3 (6.0.322.12309), X64 RyuJIT
DefaultJob : .NET 6.0.3 (6.0.322.12309), X64 RyuJIT
Method | Mean | Error | StdDev |
---|---|---|---|
LHZ.FastJson | 7.014 μs | 0.0298 μs | 0.0279 μs |
NewtonJson | 18.943 μs | 0.1786 μs | 0.1671 μs |
System.Text.Json | 10.410 μs | 0.0499 μs | 0.0467 μs |
LHZ.FastJson重构了反序列化方法,相比1.6.0之前的版本有接近2倍的反序列化性能提升
BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1889 (21H2)
Intel Core i7-9700K CPU 3.60GHz (Coffee Lake), 1 CPU, 8 logical and 8 physical cores
.NET SDK=6.0.302
[Host] : .NET 6.0.7 (6.0.722.32202), X64 RyuJIT
DefaultJob : .NET 6.0.7 (6.0.722.32202), X64 RyuJIT
Method | Mean | Error | StdDev |
---|---|---|---|
LHZFastJson v1.6.0 | 43.91 ms | 0.181 ms | 0.170 ms |
LHZFastJson v1.5.2 | 85.18 ms | 0.301 ms | 0.282 ms |
下面展示不同的安装方法,以安装LHZ.FastJson 1.6.1版本为例
Install-Package LHZ.FastJson -Version 1.6.1
dotnet add package LHZ.FastJson --Version 1.6.1
<PackageReference Include="LHZ.FastJson" Version="1.6.1" />
paket add LHZ.FastJson --version 1.6.1
Student student = new Student
{
NO = 1,
[JsonProperty("studentName")]
Name = "lhz",
Age = 18,
Brithday = new DateTime(2002, 1, 1)
};
string jsonStr = LHZ.FastJson.JsonConvert.Serialize(student);
Console.WriteLine(jsonStr);
PS C:\Users\admin\source\repos\LHZ.FastJson\LHZ.FastJson.Test> dotnet run
{"NO":1,"studentName":"lhz","Age":18,"Brithday":"2000/1/1 0:00:00"}
string str = "{\"NO\":1,\"studentName\":\"lhz\",\"Age\":18,\"Brithday\":\"2000/1/1 0:00:00\"}";
Student student = JsonConvert.Deserialize<Student>(str);
Console.WriteLine("NO:{0},Name:{1},Age:{2},Brithday:{3}", student.NO, student.Name, student.Age, student.Brithday.ToString("yyyy-MM-dd"));
PS C:\Users\admin\source\repos\LHZ.FastJson\LHZ.FastJson.Test> dotnet run
NO:1,Name:lhz,Age:18,Brithday:2000-1-1