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 мой браузер?
Нет. Весь разбор и генерация выполняются локально на вашем устройстве.
Реклама