-
-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathJsonBenchmarks.NewtonsoftJson.cs
More file actions
20 lines (17 loc) · 937 Bytes
/
JsonBenchmarks.NewtonsoftJson.cs
File metadata and controls
20 lines (17 loc) · 937 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using BenchmarkDotNet.Attributes;
using SerializationBenchmarks.Models;
public partial class JsonBenchmark
{
private readonly Newtonsoft.Json.JsonSerializerSettings _newtonsoftSettings
= new() { ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver { NamingStrategy = new Newtonsoft.Json.Serialization.CamelCaseNamingStrategy() } };
[Benchmark, BenchmarkCategory("Serialization", "Json"), ArgumentsSource(nameof(GenerateDataSets))]
public string NewtonsoftJson_Serialize(DataSet data)
{
return Newtonsoft.Json.JsonConvert.SerializeObject(data.Payload, _newtonsoftSettings);
}
[Benchmark, BenchmarkCategory("Deserialization", "Json"), ArgumentsSource(nameof(GenerateDataSets))]
public List<User> NewtonsoftJson_Deserialize(DataSet data)
{
return Newtonsoft.Json.JsonConvert.DeserializeObject<List<User>>(data.Json, _newtonsoftSettings);
}
}