JSON в Kotlin
Генерация data class Kotlin из JSON для kotlinx.serialization, Gson, Moshi или Jackson
Вставьте JSON или загрузите пример, чтобы сгенерировать код Kotlin.
Что создаёт JSON в Kotlin
JSON в Kotlin превращает ответ API или любой образец JSON в data class Kotlin для kotlinx.serialization, Gson, Moshi, Jackson или без библиотеки. Если имя свойства отличается от ключа, например user_name → userName, аннотация выбранной библиотеки (@SerialName, @SerializedName, @Json или @JsonProperty) сопоставляет его с JSON. Ключевые слова вроде class, object, when или fun записываются в обратных кавычках, а ключи, которые не являются допустимыми именами, например 123abc или user-name, переименовываются с сопоставлением или сохраняются в обратных кавычках — в зависимости от настройки имён.
Как пользоваться
- 1.Вставьте JSON, загрузите или перетащите файл .json либо откройте один из примеров.
- 2.Задайте имя корневого типа, способ именования свойств и nullability.
- 3.Выберите библиотеку сериализации и включите значения по умолчанию, если каждому классу нужен конструктор без аргументов.
- 4.В разделе «Дополнительно» укажите пакет или вложите классы в корневой класс.
- 5.Прочитайте примечания под результатом, затем скопируйте код или скачайте файл .kt.
Как выводятся типы
- •Проверяется каждый элемент массива, а не только первый, и объекты одного массива объединяются.
- •Ключ, которого нет в части объектов, необязателен и становится T? = null; ключ, который иногда равен null, становится T?. Эти случаи различаются, поэтому {"id": 1, "name": "A"} и {"id": 2} дают val name: String? = null.
- •Целые, помещающиеся в 32 бита, становятся Int, более крупные — Long, а выходящие за 64 бита — BigInteger (JsonPrimitive в kotlinx.serialization). Для значений за пределами ±2^53 выводится примечание, потому что клиенты JavaScript могут их округлить.
- •1 и 2.5 в одной позиции расширяются до Double; прочие смешения отмечаются.
- •Соответствие типов: строка → String, дробное → Double, логическое → Boolean, массив → List<T>, объект → data class, пустой объект → class, неизвестное или смешанное → Any? (JsonElement? в kotlinx.serialization).
Ограничения и конфиденциальность
Образец показывает, как данные выглядели однажды, а не полный контракт API. Перед использованием кода проверьте необязательные поля, обобщённые типы и разрядность чисел. Сгенерированному коду нужна обычная настройка библиотеки: плагин компилятора serialization, кодогенерация Moshi или jackson-module-kotlin. Gson обходит конструкторы Kotlin, поэтому non-null свойства могут получить null, если не у всех свойств есть значения по умолчанию. Ввод ограничен 5 МБ и 256 уровнями вложенности; начиная с 2 МБ генерация ждёт нажатия кнопки «Сгенерировать». Всё выполняется в вашем браузере, и JSON никуда не загружается.
