Biblioteca kotlinx.serialization para procesamiento JSON en Kotlin

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es kotlinx.serialization?

Kotlinx.serialization es la biblioteca oficial de Kotlin para la serialización y deserialización de datos, incluyendo el formato JSON. Proporciona una forma potente y type-safe de convertir objetos Kotlin a JSON y viceversa, sin usar reflexión y con soporte multiplataforma (JVM, JS, Native).

¿Por qué es necesario el procesamiento JSON en Kotlin?

En el desarrollo moderno con Kotlin (Android, aplicaciones de servidor con Ktor, proyectos multiplataforma), trabajar con JSON es una tarea obligatoria: intercambio de datos con REST API, archivos de configuración, almacenamiento de datos. Kotlinx.serialization lo resuelve de manera eficiente, segura y con un código boilerplate mínimo.

Instalación

Para usar la biblioteca, agregue el plugin en build.gradle.kts:

plugins {    kotlin("plugin.serialization") version "1.9.22"}

dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")}

Para Maven, agregue la dependencia y el plugin kotlin-maven-plugin con la configuración de serialization.

Funciones principales

  • @Serializable — anotación para clases que necesitan ser serializadas.
  • Json.encodeToString() — conversión de un objeto a una cadena JSON.
  • Json.decodeFromString() — análisis de una cadena JSON a un objeto.
  • JsonObject / JsonElement — trabajo dinámico con JSON sin crear DTO.
  • @Transient, @Required, @SerialName — ajuste fino de campos.
  • JsonConfiguration — configuraciones de formato (prettyPrint, ignoreUnknownKeys).

Ejemplo de código en Kotlin

import kotlinx.serialization.*import kotlinx.serialization.json.*

@Serializabledata class User(val name: String, val age: Int)

fun main() { val user = User("Алиса", 30) // Serialización val jsonString = Json.encodeToString(user) println(jsonString) // {"name":"Алиса","age":30} // Deserialización val decodedUser = Json.decodeFromString<User>(jsonString) println(decodedUser) // User(name=Алиса, age=30) // Trabajo con JSON dinámico val jsonObject = Json.parseToJsonElement("""{"city":"Москва","zip":101000}""").jsonObject println(jsonObject["city"]) // "Москва"}

Cuándo usarla

La biblioteca es ideal para:

  • Aplicaciones Android (Retrofit + kotlinx.serialization).
  • Proyectos de servidor con Ktor.
  • Aplicaciones multiplataforma (KMP).
  • Cualquier proyecto que necesite un trabajo rápido y seguro con JSON sin reflexión.

Supera a Gson y Jackson en rendimiento y seguridad de tipos, especialmente en proyectos Kotlin.

Recommendations