DT Dev Tools

Конвертер JSON у Kotlin — генератор data class

Перетворіть JSON на data class Kotlin онлайн для kotlinx.serialization, Jackson або Klaxon, з nullable-типами та вкладеними класами. Безкоштовно, миттєво й приватно.

🔒 Працює повністю у вашому браузері — нічого не завантажується

Реклама

Data class Kotlin зі зразка JSON

Data class Kotlin природно підходять для навантажень JSON, але виписувати їх для великої відповіді — особливо в Android, де кожен екран ніби викликає ще один ендпоінт — стомлююче. Цей конвертер JSON у Kotlin генерує їх зі зразка. Кожен об'єкт стає data class із властивостями val, ключі перетворюються на camelCase з анотаціями, що зберігають оригінальні назви JSON, вкладені об'єкти стають власними класами, а масиви — List<T>. Поля, відсутні або рівні null у деяких зразках, стають nullable-типами, тож null-безпека Kotlin діє саме на тих властивостях, яким вона потрібна.

Виведення типів забезпечує quicktype, який об'єднує всі елементи кожного масиву. Необов'язкові поля, що трапляються лише в кількох елементах, усе одно враховуються, що запобігає збоям під час виконання, коли десеріалізатор зустрічає ключ, невідомий моделі.

kotlinx.serialization, Jackson або Klaxon

Вивід за замовчуванням орієнтований на kotlinx.serialization — мультиплатформну бібліотеку від JetBrains: класи позначаються @Serializable, а ключі — @SerialName. Серверні проєкти на Spring частіше віддають перевагу Jackson, який генерує анотації @JsonProperty і допоміжний ObjectMapper. Klaxon — легка альтернатива, яку досі використовують деякі проєкти Android. Якщо ви плануєте підключати серіалізацію самостійно, позначте Data classes only. Задайте назву пакета, щоб файл компілювався на місці.

Поради для чистих моделей Kotlin

Дайте конвертеру повний зразок — кілька елементів масиву, заповнені необов'язкові поля, непорожні вкладені об'єкти — щоб nullable-ність і типи було виведено правильно. Перейменуйте кореневий клас на назву з вашої предметної області, перш ніж завантажувати. Після цього подумайте про заміну рядків із відомими значеннями типами enum class, використання Instant або LocalDate, де це підтримує ваш серіалізатор, і додавання значень за замовчуванням для полів, які ваш API пропускає. Генерація повністю відбувається у вашому браузері, тож реальні відповіді, перехоплені під час налагодження, можна вставляти без ризику.

Як користуватися

  1. Вставте JSONВставте об'єкт або масив JSON чи завантажте зразок.
  2. Оберіть серіалізаторВиберіть kotlinx.serialization, Jackson або Klaxon і задайте пакет.
  3. Скопіюйте data classСкопіюйте код Kotlin або завантажте його як файл .kt.

Часті запитання

Які бібліотеки серіалізації підтримуються?
kotlinx.serialization (за замовчуванням), Jackson і Klaxon. Кожна дає відповідні анотації та допоміжний код для своєї бібліотеки.
Як типізуються nullable-поля?
Поля, що дорівнюють null або відсутні в деяких зразках, оголошуються з nullable-типом на кшталт String? і значенням за замовчуванням null.
Чи можна отримати data class без анотацій?
Так. Позначте Data classes only, щоб вивести прості data class Kotlin без коду, специфічного для серіалізатора.
Чи залишає JSON мій браузер?
Ні. Увесь розбір і генерація виконуються локально на вашому пристрої.
Реклама