System.Text.Json source generator — compile-time JSON serialization.
Definition:
1[JsonSerializable(typeof(User))]2[JsonSerializable(typeof(List<Order>))]3internal partial class AppJsonContext : JsonSerializerContext { }
Usage:
1// Serialize2var json = JsonSerializer.Serialize(3 user, AppJsonContext.Default.User);45// Deserialize6var user = JsonSerializer.Deserialize(7 json, AppJsonContext.Default.User);
vs reflection-based:
Options:
1var options = new JsonSerializerOptions2{3 PropertyNamingPolicy = JsonNamingPolicy.CamelCase,4 DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull5};6var json = JsonSerializer.Serialize(7 user, AppJsonContext.Default.User);