Перейти до вмісту

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