@SerialName وربط الحقول المخصص
مطابقة أسماء Kotlin بمفاتيح JSON المختلفة
@SerialName وربط الحقول المخصص درس مجاني في Kotlin Multiplatform Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Multiplatform Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Multiplatform Academy 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Names Do Not Always Match
Real APIs love keys like user_name, but Kotlin prefers userName. @SerialName lets the two disagree peacefully.
Rename a Single Field
Put @SerialName above a property to tell the serializer which JSON key it really maps to.
@SerialName("user_name") val userName: StringKotlin Stays Idiomatic
Your code keeps clean camelCase names while the wire format keeps whatever the backend chose. Both sides win.
Snake Case Is Common
Many JSON APIs use snake_case, so mapping created_at to a createdAt property is one of the most frequent uses.
@SerialName("created_at") val createdAt: StringMap Reserved Words
If JSON has a key like type that clashes with your style, @SerialName frees you to name the property whatever reads best.
@SerialName("type") val kind: StringWorks on Every Field
You can annotate as many properties as you like, mixing renamed and default-named fields inside the same data class.
Rename Enum Entries Too
@SerialName also works on enum constants, so an ACTIVE entry can serialize as the lowercase string the API expects.
@SerialName("active") ACTIVEGlobal Naming Strategy
If every key is snake_case you can set a JsonNamingStrategy once instead of annotating each field by hand.
Json { namingStrategy = JsonNamingStrategy.SnakeCase }Annotation Wins
When both a global strategy and an explicit @SerialName apply, the annotation takes priority for that one field.
Same Class, Both Ways
The custom names apply to both encoding and decoding, so one annotated model handles reading and writing JSON.
Decoupled From the Backend
Mapping keys explicitly means a backend rename only touches one annotation, not your whole codebase.
Quick Check
How do you map a JSON key to a differently named Kotlin property?
Recap
Use @SerialName to map mismatched JSON keys to idiomatic Kotlin names on fields and enums, or set a global naming strategy for whole models.
الأسئلة الشائعة
هل درس «@SerialName وربط الحقول المخصص» مجاني؟
نعم — نص درس «@SerialName وربط الحقول المخصص» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Multiplatform Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Multiplatform Academy 4 دروس في المجموع.
ماذا ستتعلم في «@SerialName وربط الحقول المخصص»؟
مطابقة أسماء Kotlin بمفاتيح JSON المختلفة تتمرن على Kotlin Multiplatform Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Multiplatform Academy؟
لا تُشترط خبرة سابقة. Kotlin Multiplatform Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «@SerialName وربط الحقول المخصص»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Multiplatform Academy هذا؟
نعم. كل درس في Kotlin Multiplatform Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- نماذج البيانات @Serializable
- @SerialName وربط الحقول المخصص
- الحقول القابلة للفقد والافتراضية والاختيارية
- دمج Serialization مع Ktor