العمل مع JSON في Kotlin: التحليل والتسلسل للمبتدئين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع JSON في Kotlin: التحليل والتسلسل للمبتدئين



JSON (JavaScript Object Notation) هو تنسيق تبادل البيانات الأكثر شيوعًا في تطبيقات الويب الحديثة وواجهات API. إذا بدأت في تعلم Kotlin، فستواجه عاجلاً أم آجلاً الحاجة إلى تحويل سلاسل JSON إلى كائنات تطبيقك (إلغاء التسلسل أو التحليل) والعكس (التسلسل).



في هذه المقالة، سنستعرض الطرق الأساسية للعمل مع JSON في Kotlin باستخدام ثلاث مكتبات شائعة: kotlinx.serialization و Gson و Moshi. ستتعلم كيفية البدء بسرعة في تحليل JSON وتسلسل البيانات دون تعقيدات غير ضرورية.



ما هو تحليل JSON وتسلسله؟



قبل الانتقال إلى الكود، دعنا نحدد المصطلحات:



  • التسلسل — هو عملية تحويل كائن (مثل فئة بيانات Kotlin) إلى سلسلة بتنسيق JSON.
  • التحليل (إلغاء التسلسل) — هو العملية العكسية: من سلسلة JSON نحصل على كائن من نوع معين.


يمكن تنظيم التفاعل مع JSON في Kotlin بعدة طرق. لا توجد دعم مدمج لـ JSON في اللغة، لذلك نستخدم مكتبات خارجية.



مكتبة kotlinx.serialization (الطريقة الموصى بها)



kotlinx.serialization هي مكتبة رسمية من JetBrains تتكامل بشكل مثالي مع لغة Kotlin. تدعم تعدد المنصات (JVM, JS, Native) وتعمل في مرحلة التجميع، مما يجعلها سريعة جدًا وآمنة.



التثبيت



أضف الإضافة إلى ملف build.gradle.kts:



plugins {    kotlin("plugin.serialization") version "1.9.0"}

dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")}


مثال: تحليل JSON



لنفترض أن لدينا JSON مع بيانات مستخدم:



{  "name": "إيفان",  "age": 28,  "email": "ivan@example.com"}


لننشئ data class ونضع عليه التعليق التوضيحي @Serializable:



import kotlinx.serialization.Serializableimport kotlinx.serialization.json.Json

@Serializabledata class User( val name: String, val age: Int, val email: String)

fun main() { val jsonString = """ {"name": "إيفان", "age": 28, "email": "ivan@example.com"} """.trimIndent()

val user = Json.decodeFromString<User>(jsonString) println(user) // User(name=إيفان, age=28, email=ivan@example.com)}


مثال: التسلسل إلى JSON



fun main() {    val user = User(name = "آنا", age = 25, email = "anna@example.com")    val jsonString = Json.encodeToString(user)    println(jsonString)    // {"name":"آنا","age":25,"email":"anna@example.com"}}


المزايا: أمان النوع، السرعة، عدم وجود انعكاس، دعم الحقول القابلة للقيمة null، القيم الافتراضية والكائنات المتداخلة.



مكتبة Gson (من Google)



Gson هي واحدة من أقدم وأشهر المكتبات للعمل مع JSON في نظام JVM البيئي. إنها سهلة الاستخدام، لكنها تستخدم الانعكاس، مما يجعلها أبطأ قليلاً من kotlinx.serialization.



التثبيت



dependencies {    implementation("com.google.code.gson:gson:2.10.1")}


مثال: تحليل JSON



import com.google.gson.Gson

data class Product( val id: Int, val title: String, val price: Double)

fun main() { val gson = Gson() val jsonString = """{"id": 101, "title": "لابتوب", "price": 75000.0}"""

val product = gson.fromJson(jsonString, Product::class.java) println(product) // Product(id=101, title=لابتوب, price=75000.0)}


مثال: التسلسل إلى JSON



fun main() {    val product = Product(id = 202, title = "فأرة", price = 2                

المدونات

توصيات الكتب