StepOne by Степан Минин @ststphn
Твой первый шаг к успеху в программировании
Закрытый тг канал https://t.me/tribute/app?startapp=slOA
По вопросам рекламы @Spiral_Yuri
Ютуб https://www.youtube.com/@steponeit
Post #485
4.23K
StepOne | Степан Минин Запись выступления на Стачке 💪 Наконец-то стала доступна! Бекендеры были в шоке, когда узнали, что при перекладывании JSON'ов можно...😅
Начиная с .NET 7 я пристально слежу за обновлениями платформенного сериализатора
9-я же версия не копает куда-то вглубь, а растёт вширь, охватывая всего понемножку.
Во-первых, наконец-то завезли нормальную сериализацию енамов:
Во-вторых, добавили глубокую проверку на равенство:
В-третьих, убрали строгость порядка полей метанаданных:
В общем, то тут то там, по мелочи чего-то добавили
Полная сводка всех свежих новостей тут 👉 https://devblogs.microsoft.com/dotnet/system-text-json-in-dotnet-9
System.Text.Json просто потому, что в 7-й версии сделали прорыв с полиморфизмом, а в 8-й с интеграцией Source Generators9-я же версия не копает куда-то вглубь, а растёт вширь, охватывая всего понемножку.
Во-первых, наконец-то завезли нормальную сериализацию енамов:
JsonSerializer.Serialize(MyEnum.Value1 | MyEnum.Value2); // "Value1, Custom enum value"
[Flags, JsonConverter(typeof(JsonStringEnumConverter))]
enum MyEnum
{
Value1 = 1,
[JsonStringEnumMemberName("Custom enum value")]
Value2 = 2,
}
Во-вторых, добавили глубокую проверку на равенство:
JsonElement left = JsonDocument.Parse("10e-3").RootElement;
JsonElement right = JsonDocument.Parse("0.001").RootElement;
JsonElement.DeepEquals(left, right); // TrueВ-третьих, убрали строгость порядка полей метанаданных:
JsonSerializerOptions options = new() { AllowOutOfOrderMetadataProperties = true };
JsonSerializer.Deserialize<Base>("""{"Name":"Name","$type":"derived"}""", options); // SuccessВ общем, то тут то там, по мелочи чего-то добавили
Полная сводка всех свежих новостей тут 👉 https://devblogs.microsoft.com/dotnet/system-text-json-in-dotnet-9
- 👍 26
- 🔥 4
- ❤ 3







