Configuración de kotlinx.serialization
Añada el plugin
Configuración de kotlinx.serialization es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Academy incluye 4 lecciones en total.
¿Qué es kotlinx.serialization?
kotlinx.serialization es la biblioteca oficial de Kotlin para convertir objetos a formatos como JSON y desde ellos.
- Kotlin puro y preparado para multiplataforma
- Generación de código en tiempo de compilación (sin reflexión)
- Mantenida por JetBrains
Funciona mediante un plugin del compilador junto con una biblioteca de ejecución.
¿Por qué un plugin del compilador?
A diferencia de las bibliotecas basadas en reflexión, kotlinx.serialization genera serializadores en tiempo de compilación.
- Mayor velocidad, sin el coste de la reflexión en tiempo de ejecución
- Funciona en Kotlin/Native y JS, donde la reflexión es limitada
- Seguridad de tipos y verificación por parte del compilador
Por eso debe aplicar el plugin kotlin-serialization, no solo añadir una dependencia.
Aplicar el plugin (Kotlin DSL)
En build.gradle.kts, aplique el plugin de serialización con la misma versión que su plugin de Kotlin.
plugins {
kotlin("jvm") version "2.0.0"
kotlin("plugin.serialization") version "2.0.0"
}Añadir la dependencia de ejecución
El plugin genera código, pero también necesita la biblioteca de ejecución de JSON.
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1")
}La coherencia de versiones es importante
La versión de plugin.serialization debe coincidir con la versión de su compilador de Kotlin. La biblioteca de ejecución tiene su propia versión independiente.
- Versión del plugin = versión de Kotlin (por ejemplo, 2.0.0)
- La versión de ejecución es independiente (por ejemplo, 1.7.1)
Las versiones incompatibles del plugin y de Kotlin provocan errores de compilación difíciles de interpretar.
Otros formatos
JSON es el formato más habitual, pero kotlinx.serialization admite más formatos mediante artefactos adicionales:
kotlinx-serialization-json— JSONkotlinx-serialization-cbor— binario CBORkotlinx-serialization-protobuf— Protocol Buffers
Solo debe añadir los artefactos de los formatos que necesite.
Equivalente en Groovy DSL
Si su proyecto usa build.gradle con Groovy en lugar de Kotlin DSL, la configuración es la siguiente.
// build.gradle (Groovy)
plugins {
id 'org.jetbrains.kotlin.jvm' version '2.0.0'
id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.0'
}
dependencies {
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1'
}El punto de entrada Json
Una vez configurado todo, use el objeto Json de kotlinx.serialization.json como punto de entrada principal para codificar y decodificar.
import kotlinx.serialization.json.Json
val format = Json
// format.encodeToString(...) / format.decodeFromString(...)Un ejemplo mínimo funcional
Este es el ejemplo completo más pequeño una vez configurados el plugin y la biblioteca de ejecución.
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
@Serializable
data class City(val name: String, val population: Int)
fun main() {
val city = City("Istanbul", 15000000)
val json = Json.encodeToString(city)
println(json)
}Configuración multiplataforma
En un proyecto de Kotlin Multiplatform, añada la biblioteca de ejecución a commonMain para que todos los destinos la compartan.
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1")
}
}
}Errores comunes de configuración
Preste atención a estos problemas frecuentes:
- Olvidar el plugin: aparece
Serializer has not been found - La versión del plugin no coincide con la versión de Kotlin
- Añadir la biblioteca de ejecución, pero no el plugin (o al contrario)
- No importar
encodeToString
Comprobación rápida
¿Por qué kotlinx.serialization requiere un plugin del compilador de Gradle?
Resumen
Ha configurado kotlinx.serialization de la siguiente manera:
- Aplicando el plugin
kotlin("plugin.serialization")con una versión que coincide con la de Kotlin - Añadiendo la dependencia de ejecución
kotlinx-serialization-json - Usando el objeto
Jsoncomo punto de entrada
A continuación, anotará las clases de modelo con @Serializable.
Preguntas frecuentes
¿La lección «Configuración de kotlinx.serialization» es gratis?
Sí — el texto completo de «Configuración de kotlinx.serialization» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Academy, actualiza a CoddyKit PRO. El curso de Kotlin Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Configuración de kotlinx.serialization»?
Añada el plugin Practicas Kotlin Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Kotlin Academy?
No se requiere experiencia previa. Kotlin Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Configuración de kotlinx.serialization»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Kotlin Academy?
Sí. Cada lección de Kotlin Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Configuración de kotlinx.serialization
- Clases serializables
- Codificación y decodificación JSON
- Serializadores personalizados