UTILS.
100% у браузері
💠

JSON у класи C#

Згенеруйте класи моделей C# зі зразка JSON для System.Text.Json чи Newtonsoft.Json з властивостями PascalCase та nullable-типами значень.

результат

Про цей інструмент

Інструмент JSON у класи C# перетворює вставлений зразок JSON на класи моделей або записи C#, тож розробники .NET можуть створити DTO з відповіді API за лічені секунди. Він розбирає JSON, рекурсивно визначає типи C# і видає один тип на об'єкт: рядки стають string, рядки дати-часу ISO — DateTime, цілі числа — int або long, інші числа — double, булеві — bool, масиви — List<T>, а вкладені об'єкти — власними класами PascalCase, оголошеними перед батьками, що на них посилаються.

Увесь розбір і генерація коду відбуваються локально у вашому браузері за допомогою JSON.parse і звичайного JavaScript — нічого не завантажується. Властивості видаються як авто-властивості PascalCase, public T Prop { get; set; }. Коли ключ JSON відрізняється від назви властивості PascalCase, інструмент додає [JsonPropertyName("originalKey")] для System.Text.Json або [JsonProperty("originalKey")] для Newtonsoft, і включаються лише потрібні директиви using.

Властивості типів значень, що можуть бути null у будь-якому зразку, робляться nullable (int?, double?, bool?, DateTime?), тоді як типи посилань на кшталт string і List уже nullable. Перемикач серіалізатора перемикає стиль атрибутів і using між System.Text.Json (за замовчуванням) і Newtonsoft.Json; перемикач форми видає або класи (за замовчуванням), або записи. Скопіюйте код або завантажте його як файл .cs.

Поширені запитання

Як типи JSON зіставляються з C#?
string у string, дата-час ISO у DateTime, ціле у int (long поза діапазоном int), нецілі числа у double, булеве у bool, масив у List<T>, а об'єкт в іменований клас або запис. Nullable-типи значень отримують кінцевий модифікатор ?.
System.Text.Json чи Newtonsoft?
Перемикач серіалізатора обирає будь-який. Він керує атрибутом, що використовується, коли назва властивості відрізняється від ключа JSON — [JsonPropertyName("key")] для System.Text.Json або [JsonProperty("key")] для Newtonsoft — і відповідною директивою using.
Чи можу я генерувати записи замість класів?
Так. Перемикач форми перемикає між public class (за замовчуванням) і public record, зберігаючи ті самі авто-властивості PascalCase та атрибути JSON, тож ви можете обрати стиль, якому надає перевагу ваша кодова база.
Чи обробляється JSON приватно?
Так. Усе працює у вашому браузері за допомогою JSON.parse і звичайного JavaScript; зразок ніколи не завантажується, тож вставляти реальні дані API безпечно.

Більше інструментів