Trabalhando com JSON em Kotlin: parsing e serialização para iniciantes

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
Here is the translated HTML blog article in Brazilian Portuguese:

Trabalhando com JSON em Kotlin: Análise e Serialização para Iniciantes



JSON (JavaScript Object Notation) é o formato de troca de dados mais popular em aplicações web modernas e APIs. Se você começou a aprender Kotlin, mais cedo ou mais tarde encontrará a necessidade de converter strings JSON em objetos da sua aplicação (desserialização ou análise) e vice-versa (serialização).



Neste artigo, abordaremos as principais formas de trabalhar com JSON em Kotlin usando três bibliotecas populares: kotlinx.serialization, Gson e Moshi. Você aprenderá como começar rapidamente a analisar JSON e serializar dados sem complexidades desnecessárias.



O que são Análise e Serialização de JSON?



Antes de ir para o código, vamos definir os termos:



  • Serialização é o processo de converter um objeto (ex.: uma data class do Kotlin) em uma string no formato JSON.
  • Análise (desserialização) é o processo inverso: a partir de uma string JSON obtemos um objeto de um tipo específico.


A interação com JSON em Kotlin pode ser organizada de várias maneiras. Não há suporte nativo a JSON na linguagem, então usamos bibliotecas de terceiros.



Biblioteca kotlinx.serialization (Abordagem Recomendada)



kotlinx.serialization é a biblioteca oficial da JetBrains que se integra perfeitamente com a linguagem Kotlin. Ela suporta multiplataforma (JVM, JS, Native) e funciona em tempo de compilação, tornando-a muito rápida e segura.



Instalação



Adicione o plugin ao arquivo build.gradle.kts:



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

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


Exemplo: Análise de JSON



Suponha que temos um JSON com dados de usuário:



{  "name": "Ivan",  "age": 28,  "email": "ivan@example.com"}


Vamos criar uma data class e anotá-la com @Serializable:



import kotlinx.serialization.Serializableimport kotlinx.serialization.json.Json

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

fun main() { val jsonString = """ {"name": "Ivan", "age": 28, "email": "ivan@example.com"} """.trimIndent()

val user = Json.decodeFromString<User>(jsonString) println(user) // User(name=Ivan, age=28, email=ivan@example.com)}


Exemplo: Serialização para JSON



fun main() {    val user = User(name = "Anna", age = 25, email = "anna@example.com")    val jsonString = Json.encodeToString(user)    println(jsonString)    // {"name":"Anna","age":25,"email":"anna@example.com"}}


Vantagens: segurança de tipos, velocidade, sem reflexão, suporte a campos anuláveis, valores padrão e objetos aninhados.



Biblioteca Gson (do Google)



Gson é uma das bibliotecas mais antigas e populares para trabalhar com JSON no ecossistema JVM. É simples de usar, mas utiliza reflexão, o que é um pouco mais lento que o kotlinx.serialization.



Instalação



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


Exemplo: Análise de JSON



import com.google.gson.Gson

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

fun main() { val gson = Gson() val jsonString = """{"id": 101, "title": "Laptop", "price": 75000.0}"""

val product = gson.fromJson(jsonString, Product::class.java) println(product) // Product(id=101, title=Laptop, price=75000.0)}


Exemplo: Serialização para JSON



fun main() {    val product = Product(id = 202, title = "Mouse", price = 2                

Blogs

Book Recommendations