Модели данных @Serializable
Аннотируйте модели для безопасного во время компиляции разбора
«Модели данных @Serializable» — бесплатный урок Kotlin Multiplatform Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kotlin Multiplatform Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kotlin Multiplatform Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
JSON Needs a Map
APIs speak JSON, but your shared code wants Kotlin objects. kotlinx.serialization bridges that gap on every KMP target.
Compile-Time Safety
Unlike reflection-based parsers, this library generates code at compile time, so it works fast and predictably on Android and iOS.
Mark a Class @Serializable
You tag a data class with @Serializable and the compiler writes a serializer for it automatically.
@Serializable
data class User(val id: Int, val name: String)Add the Plugin
The annotation only works once you apply the kotlin-serialization Gradle plugin to your shared module.
plugins { kotlin("plugin.serialization") }Add the Runtime
You also need the JSON runtime dependency in commonMain so the generated code has something to call.
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")Encode to a String
Turn a model into JSON text with Json.encodeToString, ready to send over the network.
val text = Json.encodeToString(user)Decode From a String
Going the other way, decodeToString's partner reads JSON text back into a typed Kotlin object.
val user = Json.decodeFromString<User>(text)Properties Become Keys
By default each property name becomes the matching JSON key, so id and name map straight across with no extra config.
Nested Models Just Work
If a serializable class holds another serializable class, the whole nested tree serializes together with no manual wiring.
@Serializable
data class Order(val buyer: User)Supported Types
Primitives, strings, lists, maps and other serializable classes are all supported, which covers most real API payloads you will meet.
Truly Multiplatform
Because the serializer is generated Kotlin, the exact same parsing logic runs on every target with no platform-specific code.
Quick Check
What does the @Serializable annotation actually trigger?
Recap
Tag models with @Serializable, add the plugin and runtime, then use Json.encodeToString and decodeFromString to move between objects and JSON.
Часто задаваемые вопросы
Урок «Модели данных @Serializable» бесплатный?
Да — полный текст урока «Модели данных @Serializable» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kotlin Multiplatform Academy, подпишись на CoddyKit PRO. Курс Kotlin Multiplatform Academy содержит 4 уроков всего.
Чему я научусь в уроке «Модели данных @Serializable»?
Аннотируйте модели для безопасного во время компиляции разбора Ты практикуешь Kotlin Multiplatform Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Kotlin Multiplatform Academy?
Предыдущий опыт не требуется. Kotlin Multiplatform Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Модели данных @Serializable»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Kotlin Multiplatform Academy?
Да. Каждый урок Kotlin Multiplatform Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Модели данных @Serializable
- @SerialName и пользовательское сопоставление полей
- Допускающие null, стандартные и необязательные поля
- Подключение сериализации к Ktor