Сценарии
JsonDocument Dispose | Обращаю внимание, что JsonDocument реализует интерфейс IDisposable (скорее всего для переиспользования памяти). Memory management when using JsonDocument UPD1: |
Базовые опции |
new JsonSerializerOptions() { //Игнорирование null элементы IgnoreNullValues = true, // Форматирование читаемое/компкатный WriteIndented = true, // Кодировка символов //Encoder = JavaScriptEncoder.Create(UnicodeRanges.BasicLatin, UnicodeRanges.Cyrillic), Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping, // Регистронезависимость // How to enable case-insensitive property name matching with System.Text.Json // https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/character-casing PropertyNameCaseInsensitive = true, // Enum как строка Converters = { new System.Text.Json.Serialization.JsonStringEnumConverter() } }; |
Создание или изменение json объекта | JsonNode |
Распознать строковые значения как число. | [JsonNumberHandling(JsonNumberHandling.AllowReadingFromString)] // или new JsonSerializerOptions() { NumberHandling = JsonNumberHandling.AllowReadingFromString }
System.Text.Json: Deserialize JSON with automatic casting |
JsonConverter. Реализация собственной (кастомной) логики сериализации типов | How to write custom converters for JSON serialization (marshalling) in .NET System.Text.Json deserialization fails with JsonException "read to much or not enough" |
Обход свойств | EnumerateObject() |