Jetpack Compose Academy · درس

تحليل JSON باستخدام Moshi

حوّل الاستجابات إلى فئات بيانات Kotlin

الدرس 2 من 413 خطوة

تحليل JSON باستخدام Moshi درس مجاني في Jetpack Compose Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Jetpack Compose Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Jetpack Compose Academy 4 دروس في المجموع.

لماذا تحتاجون إلى محلل

يرسل الخادم نص JSON خامًا، بينما تحتاج واجهة المستخدم إلى كائنات Kotlin حقيقية. ويصل محلل مثل Moshi بين الأمرين تلقائيًا.

تحويل JSON إلى Data Class

يصبح كل كائن JSON عبارة عن Kotlin data class. ويطابق Moshi أسماء الحقول ويملأ الخصائص نيابةً عنكم. ✨

data class User(
    val id: Int,
    val name: String
)

استخدام @JsonClass لتوليد الشيفرة

أضيفوا @JsonClass مع generateAdapter true حتى ينشئ Moshi محوّلًا سريعًا في وقت الترجمة بدلًا من استخدام الانعكاس البطيء.

@JsonClass(generateAdapter = true)
data class User(val id: Int, val name: String)

إعادة تسمية الحقول باستخدام @Json

عندما يستخدم مفتاح JSON الصيغة snake_case، تربطه التعليمة التوضيحية @Json باسم خاصية Kotlin واضح دون إعادة تسمية API.

@Json(name = "full_name")
val fullName: String

Nullable تعني اختيارية

إذا كان من المحتمل غياب حقل، فاجعلوه nullable باستخدام علامة الاستفهام. ويعيّن Moshi قيمته إلى null بدلًا من التعطل عند غياب المفاتيح.

data class User(
    val id: Int,
    val bio: String?
)

القيم الافتراضية مفيدة

امنحوا الخاصية default value، وسيستخدمها Moshi كلما حذفت JSON ذلك الحقل، مما يحافظ على قدرة النموذج على التعامل مع التغييرات.

val isVerified: Boolean = false

تعمل الكائنات المتداخلة تلقائيًا

إذا كانت JSON تحتوي على كائن آخر متداخل، فمثّلوه باعتباره data class مستقلة. ويحلل Moshi tree كاملةً في مرور واحد.

data class User(val id: Int, val address: Address)

قوائم الكائنات

تتحول مصفوفة JSON بسهولة إلى Kotlin List من data class الخاصة بكم. وينشئ Moshi كل عنصر بالترتيب نيابةً عنكم.

@GET("users")
fun getUsers(): Call<List<User>>

إنشاء مثيل Moshi

أنشئوا كائن Moshi مشتركًا واحدًا، وأضيفوا مصنع محوّل Kotlin حتى يفهم data classes بطريقة صحيحة.

val moshi = Moshi.Builder()
    .add(KotlinJsonAdapterFactory())
    .build()

إدخال Moshi في Retrofit

مرروا مثيل Moshi إلى MoshiConverterFactory عند إنشاء Retrofit، وستُحلّل كل استجابة دون شيفرة إضافية.

.addConverterFactory(MoshiConverterFactory.create(moshi))

حافظوا على تركيز النماذج

مثّلوا الحقول التي تستخدمونها فعلًا فقط. إذ يتجاهل Moshi مفاتيح JSON غير المعروفة، لذلك تبقى data class مختصرة ونظيفة وسريعة.

تحقق سريع

كيف تربطون مفتاح JSON المسمى first_name بخاصية Kotlin المسماة firstName؟

مراجعة: تحويل JSON إلى كائنات

مثّلتم الاستجابات باستخدام data classes، وتعاملتم مع إعادة التسمية والقيم الفارغة والتداخل، وربطتم Moshi بـ Retrofit. بعد ذلك ستستدعون هذه endpoints من ViewModel.

البدء مجانًا

تعلم Kotlin مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «تحليل JSON باستخدام Moshi» مجاني؟

نعم — نص درس «تحليل JSON باستخدام Moshi» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Jetpack Compose Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Jetpack Compose Academy 4 دروس في المجموع.

ماذا ستتعلم في «تحليل JSON باستخدام Moshi»؟

حوّل الاستجابات إلى فئات بيانات Kotlin تتمرن على Jetpack Compose Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Jetpack Compose Academy؟

لا تُشترط خبرة سابقة. Jetpack Compose Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «تحليل JSON باستخدام Moshi»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Jetpack Compose Academy هذا؟

نعم. كل درس في Jetpack Compose Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تعريف واجهة Retrofit API
  2. تحليل JSON باستخدام Moshi
  3. استدعاءات suspend في ViewModel
  4. واجهة التحميل والنجاح والخطأ
← العودة إلى Jetpack Compose Academy