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.