JSON в C# Class
Генерируйте C#-классы из JSON прямо в браузере.
Для чего это нужно
JSON в C#-классы, готовые для .NET
Совместим с современным .NET
Сгенерированные классы работают с System.Text.Json (.NET 5+) и Newtonsoft.Json. Готово для ASP.NET Core и .NET MAUI.
100% приватно
Ваш JSON обрабатывается в браузере. Никогда не отправляется на внешние серверы. Безопасно для конфиденциальных API.
Идиоматичный C#-код
Автосвойства, PascalCase, корректные nullable-типы. Код соответствует официальным соглашениям Microsoft.
Мгновенно
Генерация классов за миллисекунды. Никаких установок, регистрации и ожидания.
Как это работает
Три шага — никаких сложностей
Вставьте ваш JSON
Вставьте любой допустимый JSON-объект. Парсер определяет типы, необязательные поля и вложенные структуры.
Сгенерируйте C#-классы
Генерируются C#-классы с автосвойствами, nullable-типами для необязательных полей и вложенными классами.
Скопируйте и используйте в проекте
Скопируйте сгенерированный код в Visual Studio или VS Code. Совместимо с System.Text.Json и Newtonsoft.Json без каких-либо изменений.
FAQ
Остались вопросы?
Автосвойства ({ get; set; }) — функция C#, позволяющая объявлять свойства без ручного написания backing-поля. Вместо объявления приватного поля и его явных аксессоров достаточно написать public string Name { get; set; }, и компилятор автоматически генерирует backing-поле. Это делает код более лаконичным и читабельным.
Соглашения об именовании .NET (задокументированные в руководствах Microsoft) определяют, что публичные свойства должны использовать PascalCase (PropertyName), в отличие от Java с его camelCase. Тем не менее System.Text.Json и Newtonsoft.Json могут автоматически сопоставлять PascalCase в C# и camelCase в JSON с помощью JsonPropertyName или конфигурации сериализации.
Когда поле присутствует в некоторых JSON-объектах, но не во всех, оно определяется как необязательное и генерируется с nullable-типом (string?, int?, bool?). Для этого требуется C# 8.0 или выше с включённым nullable-контекстом. Nullable-типы предотвращают NullReferenceException при обращении к полям, которые могут отсутствовать в JSON-ответе.
Вложенные JSON-объекты преобразуются в отдельные C#-классы в одном файле. Каждый вложенный класс генерируется как обычный публичный класс (не внутренний), следуя соглашению C# об одной ответственности на класс. Ссылки между классами устанавливаются через тип свойства.
System.Text.Json входит в .NET Core 3.0+ и является рекомендуемым вариантом для новых проектов: он быстрее и требует меньше памяти. Newtonsoft.Json (Json.NET) имеет больше возможностей и гибкости, предпочтителен при необходимости сложных пользовательских конвертеров или совместимости со старыми проектами. Классы, сгенерированные данным инструментом, совместимы с обеими библиотеками без каких-либо изменений.
C#-классы, record-типы, сериализация JSON в .NET и разработка с ASP.NET Core
C# — основной язык экосистемы .NET от Microsoft, широко используемый для веб-API с ASP.NET Core, десктопных приложений на WPF/WinForms и кроссплатформенных приложений с .NET MAUI. При разработке REST API с ASP.NET Core модели данных (также называемые DTO или view-моделями) — это C#-классы, представляющие тела JSON-запросов и ответов.
С C# 9.0 и .NET 5+ Microsoft представила record-типы: неизменяемые классы с равенством по значению, идеальные для DTO. В отличие от обычных классов, record-типы по умолчанию неизменяемы и требуют меньше шаблонного кода. Однако для сценариев, где объекты должны быть изменяемыми (например, при десериализации из JSON), классы с автосвойствами остаются стандартным выбором.
System.Text.Json, представленный в .NET Core 3.0, заменил Newtonsoft.Json в качестве рекомендуемой библиотеки сериализации. Он значительно быстрее и требует меньше памяти, что важно для высокопроизводительных API. В бенчмарках System.Text.Json превосходит Newtonsoft по скорости сериализации и десериализации. Convertir.ai генерирует классы, совместимые с обеими библиотеками, обрабатывая всё в вашем браузере без отправки данных на серверы.