Kotlin:
การทำงานกับ JSON

วิธีการ:

Kotlin ไม่มีการสนับสนุนสำหรับ JSON ในตัว แต่ใช้ประโยชน์จากคุณสมบัติที่ทรงพลังของไลบรารีของบุคคลที่สาม เช่น Gson โดย Google และ Kotlinx.serialization โดย JetBrains นี่คือวิธีที่คุณสามารถใช้ทั้งสองในการทำงานกับ JSON

การใช้ Gson

เพิ่ม dependency Gson ลงในไฟล์ build.gradle ของคุณ:

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

วิเคราะห์สตริง JSON เป็นออบเจกต์และในทางกลับกัน:

import com.google.gson.Gson

// กำหนด data class
data class User(val name: String, val age: Int)

fun main() {
    val gson = Gson()

    // Serialize
    val json = gson.toJson(User("John Doe", 30))
    println(json)  // ผลลัพธ์: {"name":"John Doe","age":30}

    // Deserialize
    val user: User = gson.fromJson(json, User::class.java)
    println(user)  // ผลลัพธ์: User(name=John Doe, age=30)
}

การใช้ Kotlinx.serialization

ก่อนอื่น, รวม dependency ในไฟล์ build.gradle ของคุณ:

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

หลังจากนั้น, ใช้ plugin kotlinx-serialization ที่ด้านบนของสคริปต์การสร้างของคุณ:

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

การ serialize และ deserialize ด้วย Kotlinx.serialization:

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

// กำหนด serializable data class
@Serializable
data class User(val name: String, val age: Int)

fun main() {
    // Serialize
    val json = Json.encodeToString(User("Jane Doe", 28))
    println(json)  // ผลลัพธ์: {"name":"Jane Doe","age":28}

    // Deserialize
    val user = Json.decodeFromString<User>(json)
    println(user)  // ผลลัพธ์: User(name=Jane Doe, age=28)
}

ทั้ง Gson และ Kotlinx.serialization ทำให้การทำงานกับ JSON ในแอปพลิเคชัน Kotlin ง่ายขึ้น การเลือกใช้งานไลบรารีใดไลบรารีหนึ่งขึ้นอยู่กับความต้องการเฉพาะของโปรเจกต์และความชอบส่วนบุคคลของคุณ