Конвертер 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 можно использовать безопасно.
Как использовать
- Вставьте JSONВставьте объект или массив JSON либо нажмите Load sample, чтобы попробовать.
- Настройте параметрыВыберите имя корневого класса, пространство имён, сериализатор и тип коллекции.
- Скопируйте классыСкопируйте сгенерированный C# или скачайте его как файл .cs для вашего проекта.
Часто задаваемые вопросы
Поддерживает ли он System.Text.Json и Newtonsoft.Json?
[JsonPropertyName] или [JsonProperty] и вспомогательные конвертеры для этой библиотеки.Можно ли получить простые классы без вспомогательного кода сериализатора?
Как типизируются даты, decimal и null?
DateTimeOffset, числа с дробной частью — double, а поля, которых нет или которые равны null в некоторых образцах, становятся nullable.