JSON в Kotlin

Генерация data class Kotlin из JSON для kotlinx.serialization, Gson, Moshi или Jackson

Ввод JSON

Параметры

Модель
Имена свойств
Nullable-свойства
Сериализация
Дополнительно
Размещение классов

Вывод Kotlin

Вставьте 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. 1.Вставьте JSON, загрузите или перетащите файл .json либо откройте один из примеров.
  2. 2.Задайте имя корневого типа, способ именования свойств и nullability.
  3. 3.Выберите библиотеку сериализации и включите значения по умолчанию, если каждому классу нужен конструктор без аргументов.
  4. 4.В разделе «Дополнительно» укажите пакет или вложите классы в корневой класс.
  5. 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 никуда не загружается.

CodingTool официально запущен на

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch