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 та секрети ніколи не залишають ваш пристрій.
Реклама