Превратите пример JSON в data class Kotlin для kotlinx.serialization, Gson или Moshi
Работает в вашем браузере. Ничего из того, что вы вводите, никуда не отправляется. Проверено 16 октября 2026 г..Вставьте пример JSON и получите data class Kotlin для kotlinx.serialization, Gson или Moshi. Целые числа становятся Int, а свыше 2 147 483 647 — Long, любая дробь делает свойство Double, значение null делает его nullable, а ключ, которого нет в некоторых объектах, становится T? = null, чтобы все 3 библиотеки его декодировали.
Эта страница переведена машинным способом с английского оригинала. Перевод ещё не проверен человеком, поэтому ориентируйтесь на английскую версию. Читать английский оригинал
Вставьте пример JSON, например ответ API, в левое поле.
Data class Kotlin появляются по мере ввода, по одному на объект, со свойствами в camelCase и аннотацией везде, где ключ отличается.
Выберите kotlinx.serialization, Gson или Moshi, var вместо val при необходимости и имя корневого класса.
Нажмите «Копировать» или «Скачать», чтобы сохранить Models.kt.
Kotlin читает JSON в data class, и каждому объекту нужен класс, свойства которого имеют правильные типы, правильную допустимость null и путь обратно к своим ключам. Этот конвертер пишет такие классы по примеру, так что длинный ответ API превращается в Kotlin за одну вставку.
Как выбираются типы.
| Значение JSON | Тип Kotlin |
|---|---|
| "text" | String |
| true / false | Boolean |
| 42 (только целые числа) | Int или Long за пределами 32 бит |
| 4.5 (встретилась любая дробь) | Double |
| null и ещё какой-то тип | String?, Int? |
| только null или смешанные виды | JsonElement? или Any? |
| [ ... ] | List<...> |
| { } пустой | JsonObject или Map<String, Any?> |
| { ... } | отдельный data class |
Отсутствующие ключи. Все объекты массива сливаются в один класс. Ключ, который некоторые объекты пропускают, становится nullable со значением по умолчанию null, потому что kotlinx.serialization и Moshi считают ошибкой отсутствующий ключ без значения по умолчанию. kotlinx.serialization также отвергает ключи, для которых нет свойства, поэтому каждый ключ примера получает своё.
Имена. Свойства пишутся в lowerCamelCase. Если это меняет ключ, как user_name на userName, свойство получает @SerialName, @SerializedName или @Json(name = ...), в зависимости от библиотеки. Ключевые слова вроде class пишутся в обратных кавычках. В строках аннотаций знак доллара экранируется, иначе Kotlin прочитал бы его как шаблон.
Параметры. var вместо val даёт изменяемые свойства. Пустой объект становится обычным классом, потому что data class нужно хотя бы одно свойство. Корневой класс называется Root, если вы не дадите ему имя.
Каждый результат проверен обратным чтением Kotlin и декодированием 9 примеров по правилам kotlinx.serialization по умолчанию. Ничто из вставленного не покидает браузер.
Вставьте пример JSON в конвертер, и рядом появятся data class, по одному на объект. С kotlinx.serialization добавьте плагин и декодируйте через Json.decodeFromString<Root>(text); с Gson используйте Gson().fromJson(text, Root::class.java); с Moshi создайте адаптер для Root.
Ключ, который некоторые объекты массива пропускают, получает nullable-тип и null по умолчанию. И kotlinx.serialization, и Moshi отвергают отсутствующий ключ, если у свойства нет значения по умолчанию, поэтому именно оно позволяет декодировать каждый объект примера.
kotlinx.serialization — собственная библиотека Kotlin, работает на всех платформах Kotlin и проверяет типы при компиляции. Moshi с codegen подходит Android-проектам, которые уже используют Retrofit и Okio. Gson — самая старая и не требует настройки, но при создании объектов игнорирует null-безопасность Kotlin и значения по умолчанию.
Свойства пишутся в lowerCamelCase, так что user_name становится userName, а @SerialName, @SerializedName или @Json(name = ...) сохраняет исходный ключ. Ключ, который является ключевым словом Kotlin, например class или object, пишется в обратных кавычках, что сохраняет ключ настоящим именем свойства.
Целые числа становятся Int, или Long, если значение больше 2 147 483 647, а поле становится Double, как только любое значение в примере имеет дробную часть. Значения разных видов становятся JsonElement? с kotlinx.serialization или Any? с Gson и Moshi.
Нет. Преобразование выполняется в вашем браузере без запросов к серверу, и JSON не сохраняется, так что ответы API с токенами или личными данными остаются на вашем устройстве. Закройте вкладку, и ничего не останется.
Ставки и правила меняются; проверьте источник, прежде чем полагаться на цифру.
Всё ещё не получается? Задайте вопрос об инструменте «Конвертер JSON в data class Kotlin» и ответить может любой, кто знает. Учётная запись не нужна.