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.