Sobes.tech
Junior

Come lavorare con JSON in Kotlin?

sobes.tech AI

Risposta dell'AI

In Kotlin, lavorare con JSON viene generalmente effettuato utilizzando librerie di terze parti. Le più popolari:

  1. Jackson: Potente e flessibile.
  2. Gson: Facile da usare, di Google.
  3. kotlinx.serialization: Serializzazione/deserializzazione nativa di Kotlin.

Esempio di utilizzo di kotlinx.serialization:

  1. Aggiungi le dipendenze in build.gradle.kts:

    // build.gradle.kts
    plugins {
        kotlin("jvm") version "1.9.22"
        kotlin("plugin.serialization") version "1.9.22"
    }
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")
    }
    
  2. Crea una data class per modellare la struttura JSON:

    // Data class per deserializzare JSON
    import kotlinx.serialization.Serializable
    
    @Serializable // Annotazione per serializzazione/deserializzazione
    data class User(
        val name: String,
        val age: Int
    )
    
  3. Deserializza una stringa JSON in un oggetto:

    // Deserializzazione di stringa JSON
    import kotlinx.serialization.json.Json
    
    val jsonString = """{"name":"Alice","age":30}"""
    val user = Json.decodeFromString<User>(jsonString)
    
    // user.name sarà "Alice", user.age sarà 30
    
  4. Serializza un oggetto in una stringa JSON:

    // Serializza oggetto in stringa JSON
    import kotlinx.serialization.json.Json
    
    val userToSerialize = User("Bob", 25)
    val jsonOutput = Json.encodeToString(userToSerialize)
    
    // jsonOutput sarà {"name":"Bob","age":25}
    

La scelta della libreria dipende dai requisiti del progetto KMP (Kotlin Multiplatform), dalla performance e dalla facilità d'uso. kotlinx.serialization è la scelta preferita per i progetti KMP grazie alla sua natura nativa.