JSON в Kotlin Data Class
Генерируйте Kotlin data class из JSON. Бесплатно, в браузере.
Для чего это нужно
Из JSON в Kotlin Data Class за секунды
Готово для Android и Kotlin
Генерирует код, совместимый с Retrofit, kotlinx.serialization и Room. Вставьте прямо в ваш проект.
100% приватно
Ваш JSON из API не покидает браузер. Никакой регистрации и телеметрии.
Корректные типы
Определяет String, Int, Long, Double, Boolean, List и nullable-типы с ?. Полная поддержка вложенности.
Мгновенно
Генерация в реальном времени по мере ввода. Никаких кнопок и ожидания.
Как это работает
Три шага — никаких сложностей
Вставьте ваш JSON
Вставьте JSON из вашего API или конфигурационного файла. Может быть вложенным объектом или массивом.
Мгновенная генерация
Инструмент автоматически генерирует Kotlin data class с выведенными типами и аннотациями сериализации.
Скопируйте код
Скопируйте сгенерированные data class и используйте их непосредственно в вашем Android или Kotlin-проекте.
FAQ
Остались вопросы?
Data class — специальная возможность Kotlin, автоматически генерирующая методы equals(), hashCode(), toString() и copy() на основе свойств, объявленных в первичном конструкторе. Они идеально подходят для представления моделей данных, особенно REST API-ответов, поскольку устраняют шаблонный код, который в Java потребовал бы ручного написания или использования Lombok.
По умолчанию генерируются свойства val (неизменяемые) — рекомендуемая практика в Kotlin для моделей данных. val означает, что значение нельзя переназначить после инициализации, что делает объекты более предсказуемыми и потокобезопасными. Используйте var только при необходимости изменять объект после создания.
Да. Добавляется аннотация @Serializable из kotlinx.serialization — официальной библиотеки сериализации JSON для Kotlin. Также добавляется @SerialName, когда имя поля JSON отличается от соглашения camelCase в Kotlin, например при использовании snake_case в JSON.
Когда значение в JSON равно null или поле отсутствует не во всех объектах массива, свойство генерируется как nullable-тип с оператором ?. Например, String? вместо String. В Kotlin различие между nullable и non-nullable типами является частью системы типов, и компилятор проверяет это на этапе компиляции.
В Android-разработке Kotlin data class используются главным образом для моделирования REST API-ответов с Retrofit, хранения данных в локальных базах данных с Room, сериализации объектов для передачи между Activity/Fragment через Parcelable, а также в качестве моделей в архитектурах MVVM и MVI. После того как Google в 2019 году объявил Kotlin официальным языком Android, data class стали де-факто стандартом.
Kotlin для Android, kotlinx.serialization и Retrofit для типобезопасных API
В мае 2019 года Google объявил Kotlin предпочтительным языком для разработки Android, вытеснив Java с первого места. С тех пор внедрение Kotlin в Android достигло такого уровня, что сегодня более 95% из 1000 лучших приложений Google Play используют Kotlin. Data class — одна из наиболее ценимых разработчиками Android возможностей, поскольку устраняет шаблонный код Java POJO.
kotlinx.serialization — официальная библиотека сериализации JetBrains для Kotlin. В отличие от Gson или Moshi, она полностью нативна для Kotlin, работает с компиляцией Kotlin Multiplatform Mobile, нативно поддерживает корутины и генерирует код на этапе компиляции вместо использования рефлексии во время выполнения. Аннотации @Serializable на data class достаточно для сериализации и десериализации JSON.
Retrofit, разработанный Square, — наиболее популярная библиотека для работы с REST API на Android. В связке с kotlinx.serialization или Gson в качестве конвертера он позволяет определять API-интерфейсы с аннотациями (@GET, @POST, @Body), а Retrofit автоматически генерирует реализацию. Data class, сгенерированные данным инструментом, напрямую совместимы с Retrofit в качестве возвращаемых типов или типов параметров тела запроса.