Kotlin:
עבודה עם JSON

איך לעשות:

קוטלין אינה כוללת תמיכה מובנית ל-JSON אך היא מנצלת את התכונות החזקות של ספריות צד שלישי כגון Gson מבית גוגל ו-Kotlinx.serialization מבית JetBrains. הנה איך אתם יכולים להשתמש בשניהם לעבודה עם JSON.

שימוש ב-Gson

הוספת התלות של Gson לקובץ build.gradle שלך:

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

פענוח מחרוזת JSON לאובייקט ולהיפך:

import com.google.gson.Gson

// הגדרת מחלקת נתונים
data class User(val name: String, val age: Int)

fun main() {
    val gson = Gson()

    // סריאליזציה
    val json = gson.toJson(User("John Doe", 30))
    println(json)  // פלט: {"name":"John Doe","age":30}

    // דיסריאליזציה
    val user: User = gson.fromJson(json, User::class.java)
    println(user)  // פלט: User(name=John Doe, age=30)
}

שימוש ב-Kotlinx.serialization

ראשית, כלול את התלות ב-build.gradle שלך:

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

לאחר מכן, החל את תוסף kotlinx-serialization בראש סקריפט הבנייה שלך:

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

סריאליזציה ודיסריאליזציה עם Kotlinx.serialization:

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

// הגדרת מחלקת נתונים סריאליזבילית
@Serializable
data class User(val name: String, val age: Int)

fun main() {
    // סריאליזציה
    val json = Json.encodeToString(User("Jane Doe", 28))
    println(json)  // פלט: {"name":"Jane Doe","age":28}

    // דיסריאליזציה
    val user = Json.decodeFromString<User>(json)
    println(user)  // פלט: User(name=Jane Doe, age=28)
}

גם Gson וגם Kotlinx.serialization מפשטים את העבודה עם JSON באפליקציות קוטלין, הבחירה באחת על פני השנייה תלויה בדרישות הפרויקט הספציפיות שלכם ובהעדפות האישיות.