Processamento de JSON em Kotlin: bibliotecas, parsing e serialização

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: guia completo



JSON (JavaScript Object Notation) continua sendo um dos formatos de troca de dados mais populares no desenvolvimento web, aplicativos móveis e microsserviços. Kotlin, sendo uma linguagem moderna para JVM, Android e projetos multiplataforma, oferece várias ferramentas poderosas para trabalhar com JSON. Neste artigo, vamos detalhar as principais bibliotecas, seus recursos e melhores práticas.



Por que preciso de uma biblioteca para JSON em Kotlin?

Embora Kotlin rode na JVM e possa usar bibliotecas Java, as soluções nativas Kotlin (por exemplo, kotlinx.serialization) oferecem:

  • Segurança de tipos em tempo de compilação
  • Suporte a data classes e sealed classes
  • Multiplataforma (KMP)
  • Código boilerplate mínimo


Principais bibliotecas para trabalhar com JSON em Kotlin



1. kotlinx.serialization (recomendado)

Esta é a biblioteca oficial da JetBrains, integrada ao ecossistema Kotlin. Ela suporta multiplataforma e não requer reflexão.

Configuração (Gradle):

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

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


Exemplo de parsing JSON:

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

@Serializabledata class User( val id: Int, val name: String, val email: String, @SerialName("is_active") val isActive: Boolean = false)

fun main() { val jsonString = """ { "id": 1, "name": "Иван Петров", "email": "ivan@example.com", "is_active": true } """.trimIndent()

val user = Json.decodeFromString<User>(jsonString) println("Usuário: ${user.name}, ativo: ${user.isActive}")

// Serialização de volta para JSON val jsonOutput = Json.encodeToString(user) println(jsonOutput)}


2. Gson (do Google)

Biblioteca Java popular que se adapta facilmente ao Kotlin. Adequada para projetos simples sem suporte multiplataforma.

Exemplo:

import com.google.gson.Gsonimport com.google.gson.annotations.SerializedName

data class Product( @SerializedName("product_id") val id: Int, val title: String, val price: Double)

fun main() { val gson = Gson() val json = """{"product_id": 101, "title": "Ноутбук", "price": 79999.99}""" val product = gson.fromJson(json, Product::class.java) println("Produto: ${product.title}, preço: ${product.price} руб.") // Serialização reversa val jsonOut = gson.toJson(product) println(jsonOut)}


3. Moshi (do Square)

Alternativa moderna ao Gson com melhor desempenho e suporte a código gerado Kotlin.

Exemplo:

import com.squareup.moshi.Moshiimport com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactoryimport com.squareup.moshi.adapters.PolymorphicJsonAdapterFactory

data class Book( val isbn: String, val author: String, val year: Int)

fun main() { val moshi = Moshi.Builder() .add(KotlinJsonAdapterFactory()) .build() val adapter = moshi.adapter(Book::class.java) val json = """{"isbn": "978-5-17-123456-7", "author": "Лев Толстой", "year": 1877}""" val book = adapter.fromJson(json) println("Livro: ${book?.author} - ISBN: ${book?.isbn}")}


Comparação das bibliotecas

  • kotlinx.serialization — melhor escolha para novos projetos, suporte multiplataforma e Android. Requer plugin do compilador.
  • Gson — simples de usar, adequado para protótipos rápidos

Recommendations