Работаем с JSON в .NET Core (C#). Сериализация и десериализация

Ранее мы уже рассматривали работу с JSON в C# применительно к .NET Framework. Однако время не стоит на месте и на смену .NET Framework пришла .NET Core, которая окончательно вытеснила его в .NET 5. Но, в случае .NET Core старые проверенные приёмы работают не всегда. Как работать с JSON в .NET Core?

На самом деле существует три способа.

DataContractJsonSerializer

Первый из них – класс DataContractJsonSerializer. Этот класс перешёл в .NET Core из .NET Framework и работа с ним была уже достаточно подробно описана ранее. Поэтому не станем повторяться.

Сторонние библиотеки

Второй вариант – это использование сторонних библиотек. Например, Newtonsoft.Json.

Возьмём тот же класс, что и в предыдущей статье.

class Company
{
    public string Name { get; set; }
    public string INN { get; set; }
    public string Adress { get; set; }
}

Создадим его экземпляр:

JsonSerializer

Класс JsonSerializer появился в .NET Core 3 (пространство имён System.Text.Json). Реализация сериализации и десериализации JSON с его помощью по лёгкости вполне сопоставима с Newtonsoft.Json.

Перепишем предыдущие примеры с использованием JsonSerializer.

Сериализация:

Интересная особенность класса JsonSerializerOptions – возможность автоматически форматировать JSON строку при сериализации. За это отвечает свойство WriteIndented. Если оно имеет значение true (по умолчанию false) то вместо стандартного отображения в одну строку JSON будет выведен на экран в гораздо более читабельном виде.

Пример:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *