Processamento de JSON em Kotlin: bibliotecas e exemplos de código

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

Processamento de JSON em Kotlin: bibliotecas, ferramentas e exemplos de código



JSON (JavaScript Object Notation) é um dos formatos de troca de dados mais populares no desenvolvimento web moderno. Ao criar aplicações em Kotlin, seja Android, backend ou desktop, quase sempre é necessário fazer parsing e gerar JSON. Neste artigo, vamos analisar detalhadamente as principais bibliotecas para trabalhar com JSON em Kotlin, suas funcionalidades, vantagens e fornecer exemplos práticos de código.



Por que é necessário um processamento separado de JSON em Kotlin?



Kotlin é uma linguagem estaticamente tipada que roda sobre a JVM (além de Native e JS). Ao contrário de linguagens dinâmicas, onde o JSON pode ser convertido em um dicionário "em tempo real", em Kotlin é comum trabalhar com objetos tipados. Isso aumenta a confiabilidade do código e permite que a IDE sugira automaticamente os campos. Para converter JSON em objetos Kotlin (data classes) e vice-versa, são utilizadas bibliotecas de serialização/desserialização.



Principais bibliotecas para JSON em Kotlin



Vamos considerar as três bibliotecas mais populares: kotlinx.serialization (recomendada pela JetBrains), Gson (do Google) e Moshi (do Square).



1. kotlinx.serialization



Esta é a biblioteca oficial de serialização para Kotlin, mantida pela JetBrains. Ela funciona de forma multiplataforma (JVM, Native, JS) e não utiliza reflexão, o que proporciona alto desempenho e segurança de tipos.



Instalação: adicione o plugin e a dependência no build.gradle.kts:



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

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


Exemplo de uso:



import kotlinx.serialization.Serializableimport kotlinx.serialization.json.Jsonimport kotlinx.serialization.encodeToStringimport kotlinx.serialization.decodeFromString

@Serializabledata class User(val name: String, val age: Int, val email: String? = null)

fun main() { val json = Json { prettyPrint = true; ignoreUnknownKeys = true }

// Serialização (objeto -> JSON) val user = User("Alexei", 30, "alex@example.com") val jsonString = json.encodeToString(user) println(jsonString)

// Desserialização (JSON -> objeto) val input = """{"name":"Maria","age":25}""" val parsedUser = json.decodeFromString<User>(input) println(parsedUser)}


Características:

  • Suporte a campos anuláveis (como email no exemplo).
  • Configurações via DSL: prettyPrint, ignoreUnknownKeys e outras.
  • Trabalho com enum, sealed classes, objetos aninhados.
  • Multiplataforma — um único código para Android, iOS, web.


2. Gson



Gson é uma biblioteca clássica do Google, amplamente utilizada no mundo Java. Em Kotlin, ela também funciona, mas requer cuidado com tipos anuláveis e data classes.



Instalação:



dependencies {    implementation("com.google.code.gson:gson:2.10.1")}


Exemplo:



import com.google.gson.Gsonimport com.google.gson.GsonBuilder

data class Product(val id: Int, val title: String, val price: Double)

fun main() { val gson: Gson = GsonBuilder().setPrettyPrinting().create()

// Serialização val product = Product(1, "Notebook", 89999.99) val json = gson.toJson(product) println(json)

// Desserialização val jsonString = """{"id":2,"title":"Mouse","price":1500.50}""" val parsed = gson.fromJson(jsonString, Product::class.java) println(parsed)}


Importante: Gson usa reflexão, portanto, para data classes Kotlin pode ser necessário @JvmOverloads ou configuração do

Recommendations