Перейти до вмісту
100% локально

JSON у Kotlin data class

Перетворіть приклад JSON у готовий до використання Kotlin data class.

Введення
Вихід

JSON у Kotlin data class

Вставте JSON-відповідь і цей інструмент перетворить її на готовий до використання Kotlin data class, автоматично визначаючи тип кожного поля на основі наданих значень. Створений для розробників Android та backend, яким потрібна швидка модель для API-відповіді, файлу конфігурації або прикладу payload, без ручного введення імен властивостей і типів або використання плагінів IDE.

Установіть ім'я кореневого класу і виберіть, як виглядають вкладені об'єкти: вкладені всередину кореневого класу або оголошені як окремі класи верхнього рівня. Переходьте між val для незмінних властивостей і var, коли модель повинна бути змінюваною, і ввімкніть типові значення, щоб надати кожній властивості розумне значення (порожній рядок, нуль, emptyList()) для створення екземплярів з меншою кількістю аргументів. Додавайте анотації @Serializable і @SerialName для kotlinx.serialization або @SerializedName для Gson, і виберіть відступи в 2 пробіли, 4 пробіли або табуляцію відповідно до стилю вашого проекту.

Відсутні або null значення автоматично стають nullable типами, масиви перетворюються на List<T> з типом елемента, визначеним з кожного елемента, а об'єкти з однаковою структурою об'єднуються в один перевикористовуваний клас замість дублювання. Параметр "об'єднувати поля у всіх елементах масиву" визначає, побудований тип елемента з кожного елемента масиву чи тільки з першого, що корисно для дуже великого або нерівномірного масиву. Якщо JSON на верхньому рівні сам є масивом, інструмент обгортає визначений тип елемента в List для вас.

Усе працює локально у вашому браузері — ваш JSON ніколи не завантажується і не надсилається на сервер, тому безпечно вставляти реальні API-відповіді та внутрішні payload. Скопіюйте згенерований Kotlin, завантажте його як файл .txt або відправте результат назад на вхід для перетворення з іншими параметрами.

FAQ

Як інструмент визначає, які поля можуть мати значення null?
Поле стає nullable, коли воно відсутнє щонайменше в одному образці об'єкта або коли його єдине спостережене значення — null. Поле, присутнє з ненульовим значенням у всіх об'єктах, залишається non-nullable.
Чи може інструмент генерувати анотації kotlinx.serialization або Gson?
Так. Виберіть kotlinx.serialization, щоб додати @Serializable і @SerialName, або Gson, щоб додати @SerializedName з исходним ключем JSON, щоб клас правильно десеріалізувався навіть якщо ім'я властивості відрізняється.
Що станеться з JSON-масивом, елементи якого мають різні структури?
Їхні поля об'єднуються в один data class, причому будь-яке поле, відсутнє в деяких елементах, позначається як nullable. Вимкніть параметр "об'єднувати поля у всіх елементах масиву", щоб визначити тип тільки за першим елементом.
Чи підтримує інструмент вкладені об'єкти?
Так. Вкладений об'єкт стає власним data class, оголошеним либо всередину кореневого класу, либо як окремий клас верхнього рівня залежно від параметра вкладеності.
Чи завантажується мій JSON де-небудь?
Ні. Перетворення виконується повністю у вашому браузері — ваш JSON ніколи не покидає вашого пристрою.