Biblioteca kotlinx.serialization para processamento JSON em Kotlin

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é kotlinx.serialization?

Kotlinx.serialization é a biblioteca oficial do Kotlin para serialização e desserialização de dados, incluindo o formato JSON. Ela fornece uma maneira poderosa e type-safe de converter objetos Kotlin para JSON e vice-versa, sem usar reflexão e com suporte multiplataforma (JVM, JS, Native).

Por que o processamento JSON é necessário em Kotlin?

No desenvolvimento moderno com Kotlin (Android, aplicações servidor com Ktor, projetos multiplataforma), trabalhar com JSON é uma tarefa obrigatória: troca de dados com REST API, arquivos de configuração, armazenamento de dados. O kotlinx.serialization resolve isso de forma eficiente, segura e com o mínimo de código boilerplate.

Instalação

Para usar a biblioteca, adicione o plugin no build.gradle.kts:

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

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

Para Maven, adicione a dependência e o plugin kotlin-maven-plugin com a configuração de serialization.

Funções principais

  • @Serializable — anotação para classes que precisam ser serializadas.
  • Json.encodeToString() — conversão de um objeto em uma string JSON.
  • Json.decodeFromString() — parsing de uma string JSON para um objeto.
  • JsonObject / JsonElement — trabalho dinâmico com JSON sem criar DTOs.
  • @Transient, @Required, @SerialName — ajuste fino dos campos.
  • JsonConfiguration — configurações de formatação (prettyPrint, ignoreUnknownKeys).

Exemplo de código em Kotlin

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

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

fun main() { val user = User("Алиса", 30) // Serialização val jsonString = Json.encodeToString(user) println(jsonString) // {"name":"Алиса","age":30} // Desserialização val decodedUser = Json.decodeFromString<User>(jsonString) println(decodedUser) // User(name=Алиса, age=30) // Trabalhando com JSON dinâmico val jsonObject = Json.parseToJsonElement("""{"city":"Москва","zip":101000}""").jsonObject println(jsonObject["city"]) // "Москва"}

Quando usar

A biblioteca é ideal para:

  • Aplicações Android (Retrofit + kotlinx.serialization).
  • Projetos servidor com Ktor.
  • Aplicações multiplataforma (KMP).
  • Qualquer projeto que precise de trabalho rápido e seguro com JSON sem reflexão.

Ela supera Gson e Jackson em desempenho e segurança de tipos, especialmente em projetos Kotlin.

Recommendations