Kotlin:
Arbeta med JSON
Hur man gör:
Kotlin inkluderar inte inbyggt stöd för JSON men utnyttjar de kraftfulla funktionerna hos tredjepartsbibliotek såsom Gson
av Google och Kotlinx.serialization
av JetBrains. Här är hur du kan använda båda för att arbeta med JSON.
Använda Gson
Lägg till Gson-beroendet i din build.gradle
-fil:
implementation 'com.google.code.gson:gson:2.8.9'
Tolka JSON-sträng till ett objekt och tvärtom:
import com.google.gson.Gson
// Definiera en dataklass
data class User(val name: String, val age: Int)
fun main() {
val gson = Gson()
// Serialisera
val json = gson.toJson(User("John Doe", 30))
println(json) // Utdata: {"name":"John Doe","age":30}
// Avserialisera
val user: User = gson.fromJson(json, User::class.java)
println(user) // Utdata: User(name=John Doe, age=30)
}
Använda Kotlinx.serialization
Först, inkludera beroendet i din build.gradle
:
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3"
Därefter, tillämpa kotlinx-serialization
-pluginet högst upp i ditt byggskript:
plugins {
kotlin("jvm") version "1.6.10"
kotlin("plugin.serialization") version "1.6.10"
}
Serialisera och avserialisera med Kotlinx.serialization:
import kotlinx.serialization.*
import kotlinx.serialization.json.*
// Definiera en serialiserbar dataklass
@Serializable
data class User(val name: String, val age: Int)
fun main() {
// Serialisera
val json = Json.encodeToString(User("Jane Doe", 28))
println(json) // Utdata: {"name":"Jane Doe","age":28}
// Avserialisera
val user = Json.decodeFromString<User>(json)
println(user) // Utdata: User(name=Jane Doe, age=28)
}
Både Gson och Kotlinx.serialization förenklar arbetet med JSON i Kotlin-applikationer, att välja den ena över den andra beror på dina specifika projektbehov och personliga preferenser.