Перейти к содержанию

JSON в C# класс

Преобразуйте JSON пример в готовые к использованию C# классы.

Входные данные
Выходные данные

JSON в C# класс

Вставьте JSON объект или массив JSON объектов — инструмент определит структуру и сгенерирует соответствующие C# классы. Это незаменимо при преобразовании ответа API, конфигурационного файла или примера данных в строго типизированные модели без ручного написания.

Опции управляют видом сгенерированного кода. Выберите атрибуты для System.Text.Json ([JsonPropertyName]), Newtonsoft.Json ([JsonProperty]) или не добавляйте их вообще — атрибуты создаются автоматически, когда переименование на PascalCase меняет имя свойства, поэтому исходный ключ JSON никогда не теряется. Выбирайте свойства или поля, включайте или выключайте nullable reference types, генерируйте record вместо class и используйте List<T> или T[] для массивов. Вложенные объекты становятся собственными классами с именами, производными от свойств, содержащих их, а объявление namespace оборачивает всё, когда оно задано.

Инструмент объединяет формы всех элементов при вставке массива, поэтому ключ, присутствующий только в некоторых элементах, становится опциональным nullable свойством вместо молчаливого исчезновения. Числа остаются целыми числами (int, расширяясь на long для больших значений), если точка не принуждает double, а значение, которое всегда null, становится nullable объектом. Имена классов и свойств автоматически санитизируются и дедублируются, поэтому неверные или повторяющиеся ключи JSON никогда не приводят к неправильному C#.

Всё выполняется локально в вашем браузере — ваш JSON никогда не отправляется на сервер, что важно, когда пример поступает из приватного API или содержит реальные данные. Скопируйте сгенерированные классы, загрузите их как текстовый файл или отправьте результат обратно во входное поле для дальнейшей обработки.

FAQ

Как выбирается между int, long и double?
Целые числа становятся int, или long если они превышают 32-битный диапазон. Любое число с точкой или которое расходится с целым числом в массиве становится double.
Что происходит со свойством, которое отсутствует в некоторых элементах массива?
Оно генерируется как nullable свойство. Когда включены nullable reference types, это добавляет "?"; то же применяется к значению, которое всегда null.
Может ли оно сохранить исходный ключ JSON при переименовании свойства?
Да. Каждый раз, когда переименование PascalCase или санитизация меняет имя свойства, исходный ключ сохраняется в атрибуте [JsonPropertyName] или [JsonProperty] в зависимости от выбранного стиля.
Генерирует ли оно вложенные классы для вложенных объектов?
Да. Каждый вложенный объект получает собственный класс с именем, производным от содержащего его свойства, и массивы объектов генерируют класс, названный в единственном числе этого свойства.
Отправляется ли мой JSON куда-нибудь?
Нет. Преобразование выполняется полностью в вашем браузере — ваш JSON никогда не покидает ваше устройство.