Настраиваем JSON-сериализацию через System.Text.Json!
Во многих API нужно отдавать JSON в понятном формате. Часто это camelCase-поля, аккуратные отступы в debug-режиме и отсутствие лишних null-значений.
Для начала подключим пространство имён:
using System.Text.Json;
Создадим простую модель:
record User(int Id, string Name, string? Email);
Теперь заведём настройки сериализации:
var options = new JsonSerializerOptions();
Включим camelCase для имён свойств:
options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
Если JSON нужно читать глазами, включим форматирование:
options.WriteIndented = true;
Теперь сериализуем объект:
var json = JsonSerializer.Serialize(user, options);
Обратно объект можно получить так:
var copy = JsonSerializer.Deserialize(json, options);
Важно не создавать настройки в каждом горячем вызове. Лучше вынести их в статическое поле или общий сервис, чтобы код был единообразным и без лишних аллокаций.
➡️ C# Ready | #практика
Во многих API нужно отдавать JSON в понятном формате. Часто это camelCase-поля, аккуратные отступы в debug-режиме и отсутствие лишних null-значений.
Для начала подключим пространство имён:
using System.Text.Json;
Создадим простую модель:
record User(int Id, string Name, string? Email);
Теперь заведём настройки сериализации:
var options = new JsonSerializerOptions();
Включим camelCase для имён свойств:
options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
Если JSON нужно читать глазами, включим форматирование:
options.WriteIndented = true;
Теперь сериализуем объект:
var json = JsonSerializer.Serialize(user, options);
Обратно объект можно получить так:
var copy = JsonSerializer.Deserialize(json, options);
Важно не создавать настройки в каждом горячем вызове. Лучше вынести их в статическое поле или общий сервис, чтобы код был единообразным и без лишних аллокаций.
➡️ C# Ready | #практика