DT Dev Tools

Конвертер JSON в C# — генератор классов

Преобразуйте JSON в классы C# онлайн. Модели с атрибутами System.Text.Json или Newtonsoft.Json, nullable-типами и List<T> — бесплатно и приватно в браузере.

🔒 Работает полностью в вашем браузере — ничего не загружается

Реклама

Преобразуйте JSON в модельные классы C#

Этот конвертер JSON в C# читает образец JSON и генерирует строго типизированные классы C#, повторяющие его структуру. Каждый объект становится public partial class, каждое свойство получает имя в PascalCase с атрибутом сериализатора, который сопоставляет его с исходным ключом JSON, а вложенные объекты становятся отдельными классами с именами по содержащему их свойству. Массивы превращаются в List<T> или T[], даты ISO — в DateTimeOffset, а значения, которые иногда отсутствуют или равны null, выводятся как nullable-типы, поэтому ваш код компилируется с реальными ответами, а не с идеализированными.

Внутри инструмент использует quicktype — зрелый движок вывода типов, который объединяет все элементы массива, прежде чем определить тип. Поэтому список заказов, где купон есть лишь у части заказов, даст один класс Order с необязательным свойством Coupon, а не класс, подходящий только для первого элемента.

System.Text.Json или Newtonsoft

Современные проекты .NET обычно опираются на System.Text.Json, и именно он выбран здесь по умолчанию: свойства помечаются [JsonPropertyName], а вывод содержит фабричный метод FromJson, метод расширения ToJson и настройки конвертеров для дат ISO. Если в вашем коде по-прежнему используется Json.NET, переключите сериализатор на Newtonsoft — и получите атрибуты [JsonProperty] с теми же вспомогательными методами на основе JsonConvert. Выберите Classes only, если нужны только POCO для вставки в существующую папку DTO, и задайте пространство имён, чтобы файл сразу вписался в ваше решение.

Советы для точных типов C#

Вставьте самый богатый образец, который сможете найти: добавьте необязательные поля, пустые и заполненные массивы и более одного элемента массива, чтобы вывод типов увидел, какие свойства есть всегда. Переименуйте корневой класс из Root во что-то осмысленное, например OrderResponse, прежде чем скачивать — имя файла берётся из него. После вставки кода в Visual Studio или Rider проверьте типы, которые образец показать не может: целочисленный ID, способный превысить long, строку, которая на самом деле является enum, или денежные суммы, для которых лучше подойдёт decimal. Всё работает локально, так что ответы с production можно использовать безопасно.

Как использовать

  1. Вставьте JSONВставьте объект или массив JSON либо нажмите Load sample, чтобы попробовать.
  2. Настройте параметрыВыберите имя корневого класса, пространство имён, сериализатор и тип коллекции.
  3. Скопируйте классыСкопируйте сгенерированный C# или скачайте его как файл .cs для вашего проекта.

Часто задаваемые вопросы

Поддерживает ли он System.Text.Json и Newtonsoft.Json?
Да. Выберите сериализатор — и генератор выведет соответствующие атрибуты [JsonPropertyName] или [JsonProperty] и вспомогательные конвертеры для этой библиотеки.
Можно ли получить простые классы без вспомогательного кода сериализатора?
Да. Отметьте Classes only, чтобы вывести только модельные классы — это удобно для DTO, records, которые вы собираетесь редактировать, или проектов с собственной настройкой JSON.
Как типизируются даты, decimal и null?
Строки ISO 8601 становятся DateTimeOffset, числа с дробной частью — double, а поля, которых нет или которые равны null в некоторых образцах, становятся nullable.
Загружается ли мой JSON куда-либо?
Нет. Движок quicktype целиком работает в вашем браузере, поэтому ответы API и секреты никогда не покидают ваше устройство.
Реклама