# JSON в Kotlin Data Class

Преобразует данные JSON в data-классы Kotlin с аннотациями @SerializedName, поддержкой null и выводом вложенных типов

> Каноническая страница: https://elysiatools.com/ru/tools/json-to-kotlin

- **Категория:** Development

- **Ключевые слова:** json, kotlin, data class, конвертер, SerializedName

## Обзор

Этот онлайн-инструмент мгновенно преобразует структуры JSON в готовые к использованию data-классы Kotlin. Он автоматически генерирует аннотации @SerializedName для корректной десериализации, поддерживает вложенные объекты и позволяет гибко настраивать поддержку nullable-типов для безопасной работы с API.

## Входные данные

- **JSON ввод** (textarea): { "name": "Alice", "age": 30, "roles": \["admin", "user"\], "address": { "city": "Shanghai", "zip": "200000" } }
- **Имя корневого типа** (text): Root
- **Свойства, допускающие null** (checkbox)

## Когда использовать

- При интеграции внешних REST API в Android-приложения на Kotlin для быстрого создания моделей данных.
- При необходимости автоматического добавления аннотаций @SerializedName для библиотек сериализации вроде Gson.
- При работе с динамическими или неполными JSON-ответами, где требуется сделать все поля nullable для предотвращения сбоев.

## Как это работает

- Вставьте исходный JSON-код в текстовое поле ввода.
- Укажите имя корневого класса и выберите, должны ли свойства поддерживать null (nullable).
- Нажмите кнопку генерации, чтобы мгновенно получить структурированный код Kotlin data-классов с вложенными типами.

## Сценарии использования

- Разработка Android-приложений для быстрого создания DTO (Data Transfer Objects) из ответов бэкенда.
- Миграция существующих Java-моделей данных на Kotlin с сохранением структуры JSON.
- Проектирование архитектуры клиент-серверного взаимодействия на основе мок-данных JSON.

## Частые вопросы

### Поддерживает ли конвертер вложенные JSON-объекты?

Да, инструмент автоматически извлекает вложенные объекты и создает для них отдельные связанные data-классы.

### Зачем нужны аннотации @SerializedName в сгенерированном коде?

Они связывают ключи JSON с именами свойств в Kotlin, сохраняя правильное сопоставление при сериализации и десериализации.

### Как сделать все поля в Kotlin-классах nullable?

Включите опцию «Свойства, допускающие null» перед генерацией кода.

### Можно ли изменить имя главного класса?

Да, для этого укажите желаемое имя в поле «Имя корневого типа» (по умолчанию используется Root).

### Работает ли конвертер с массивами в JSON?

Да, массивы преобразуются в списки Kotlin (List) с соответствующим типом элементов.

## Связанные инструменты

- [Генератор Data URI](https://elysiatools.com/ru/tools/data-uri-generator): Преобразует файлы в Data URI (Base64 или процентное кодирование) для встраивания изображений, шрифтов и ресурсов прямо в HTML, CSS или Markdown
- [Конвертер JSON Schema в Zod](https://elysiatools.com/ru/tools/json-schema-to-zod-schema-converter): Преобразует JSON/YAML-описания JSON Schema в готовый к использованию в TypeScript код Zod с вложенными объектами, массивами, enum и типичными правилами валидации
- [JSON в C# Class](https://elysiatools.com/ru/tools/json-to-csharp): Преобразует данные JSON в классы C# со свойствами PascalCase, атрибутами JsonPropertyName и выводом вложенных типов
- [JSON в Go Struct](https://elysiatools.com/ru/tools/json-to-go): Преобразует данные JSON в определения struct Go с json-тегами, экспортируемыми полями PascalCase и выводом вложенных типов
- [JSON в Java Class](https://elysiatools.com/ru/tools/json-to-java): Преобразует данные JSON в классы Java с аннотациями Jackson @JsonProperty, приватными полями, getter и setter
- [JSON в Rust Struct](https://elysiatools.com/ru/tools/json-to-rust): Преобразует данные JSON в struct Rust с derive-макросами serde Serialize/Deserialize, полями snake_case и атрибутами serde rename
- [JSON в TypeScript](https://elysiatools.com/ru/tools/json-to-typescript): Преобразует данные JSON в интерфейсы TypeScript или псевдонимы типов с поддержкой объединений, необязательных полей и вложенных объектов
- [Конвертер логов в sequence diagram](https://elysiatools.com/ru/tools/log-sequence-diagram-converter): Преобразует структурированные сервисные логи в Mermaid или PlantUML sequence diagrams с пометками задержек и ошибок

## Примеры

- [Примеры Сериализации Android Kotlin](https://elysiatools.com/ru/samples/android-serialization-kotlin): Примеры сериализации Android Kotlin включая JSON сериализацию, десериализацию и парсинг XML
- [JSON Примеры Terraform Plan](https://elysiatools.com/ru/samples/terraform-plan-json-samples): Файлы Terraform plan JSON для визуализации зависимостей и проверки изменений, похожие на terraform show -json
- [Примеры JSON чата](https://elysiatools.com/ru/samples/chat-transcript-json): Примеры JSON для чат-транскриптов с несколькими ролями
- [Примеры JSON](https://elysiatools.com/ru/samples/json): Примеры формата JSON (JavaScript Object Notation) от простых до сложных структур

## Связанные материалы

- [Генераторы типизированного кода из JSON (TypeScript, Go, Rust, Kotlin, Java, C#)](https://elysiatools.com/ru/hubs/json-to-typed-code-generators): Вставьте JSON и получите готовые типы: интерфейсы TypeScript, структуры Go, структуры Rust с serde, data-классы Kotlin, классы Java, классы C#, схемы Zod и выведенную JSON Schema.
- [Инструменты JSON-обмена и перевода форматов](https://elysiatools.com/ru/hubs/json-convert): Сравните инструменты преобразования JSON для CSV, YAML, TOML, GraphQL, XML, Markdown, Excel, BSON, EDN и других структурированных форматов в одном хабе.
- [Инструменты для проверки, diff и преобразования JSON](https://elysiatools.com/ru/hubs/json-utility): Соберите в одном хабе инструменты для форматирования JSON, сравнения версий, проверки путей, валидации схем, объединения файлов и преобразования данных для API и data workflows.
- [Генераторы JSON-схем, mock-данных и API-fixture](https://elysiatools.com/ru/hubs/json-generate): Подборка инструментов для генерации JSON-схем, сборки mock-payload и подготовки API-fixture в одном хабе.
