JSON in Modern C# (.NET 6+)
Since .NET Core 3.0, Microsoft ships System.Text.Json as the built-in high-performance JSON library. Newtonsoft.Json (Json.NET) remains popular for legacy projects.
System.Text.Json (Built-in, Recommended)
- Parse:
JsonSerializer.Deserialize<T>(jsonString) - Serialize:
JsonSerializer.Serialize(obj) - Pretty print: Set
JsonSerializerOptions { WriteIndented = true } - Camel case: Set
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
using System.Text.Json;
// Parse JSON string to C# object
var user = JsonSerializer.Deserialize<User>(jsonString);
// Serialize C# object to JSON
var json = JsonSerializer.Serialize(user);
// Pretty print with options
var options = new JsonSerializerOptions {
WriteIndented = true,
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
};
var pretty = JsonSerializer.Serialize(user, options);
// Safe deserialization
try {
var obj = JsonSerializer.Deserialize<MyType>(jsonText);
} catch (JsonException ex) {
Console.WriteLine($"JSON error: {ex.Message}");
}