Kotlin:
Työskentely JSON:n kanssa

Kuinka:

Kotlin ei sisällä valmiiksi tukea JSONille, mutta se hyödyntää kolmansien osapuolien kirjastojen, kuten Googlen Gson ja JetBrainsin Kotlinx.serialization, tehokkaita ominaisuuksia. Tässä on ohjeet, kuinka voit käyttää molempia työskennelläksesi JSONin kanssa.

Gsonin käyttö

Lisää Gson-riippuvuus build.gradle tiedostoosi:

implementation 'com.google.code.gson:gson:2.8.9'

JSON-muotoisen merkkijonon jäsennys olioksi ja päinvastoin:

import com.google.gson.Gson

// Määrittele data-luokka
data class User(val name: String, val age: Int)

fun main() {
    val gson = Gson()

    // Serialisointi
    val json = gson.toJson(User("John Doe", 30))
    println(json)  // Tuloste: {"name":"John Doe","age":30}

    // Deserialisointi
    val user: User = gson.fromJson(json, User::class.java)
    println(user)  // Tuloste: User(name=John Doe, age=30)
}

Kotlinx.serializationin käyttö

Lisää ensin riippuvuus build.gradle-tiedostoosi:

implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3"

Tämän jälkeen sovella kotlinx-serialization -lisäosaa koodisi alkuun:

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

Serialisointi ja deserialisointi Kotlinx.serializationin avulla:

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

// Määrittele sarjoitettava data-luokka
@Serializable
data class User(val name: String, val age: Int)

fun main() {
    // Serialisointi
    val json = Json.encodeToString(User("Jane Doe", 28))
    println(json)  // Tuloste: {"name":"Jane Doe","age":28}

    // Deserialisointi
    val user = Json.decodeFromString<User>(json)
    println(user)  // Tuloste: User(name=Jane Doe, age=28)
}

Sekä Gson että Kotlinx.serialization yksinkertaistavat JSONin käsittelyä Kotlin-sovelluksissa, ja kumpaa niistä käytetään, riippuu projektisi erityisvaatimuksista ja henkilökohtaisista mieltymyksistäsi.