Omnikit
المطورونالملفاتالمالجميع الأدوات
Ctrl K
أدوات المطورينأدوات الملفاتالحاسبات الماليةجميع الأدوات
الرئيسيةأدوات المطورينمحوّل JSON إلى data class في Kotlin
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

محوّل JSON إلى data class في Kotlin

مطورون

حوّل عينة JSON إلى data class في Kotlin لـ kotlinx.serialization أو Gson أو Moshi

يعمل في متصفحك. لا يُرسل أي شيء تكتبه إلى أي مكان. تم التحقق في 16 أكتوبر 2026.

الصق عينة JSON واحصل على data class في Kotlin لـ kotlinx.serialization أو Gson أو Moshi. تصبح الأعداد الصحيحة Int، وLong بعد 2,147,483,647، وأي كسر عشري يجعل الخاصية Double، وقيمة null تجعلها قابلة للقيمة الفارغة، والمفتاح المفقود من بعض الكائنات يصبح T? = null كي تفك المكتبات الثلاث ترميزه.

تُرجمت هذه الصفحة آليًا من الأصل الإنجليزي. لم يراجع أي شخص هذه الترجمة بعد، لذا فالنسخة الإنجليزية هي التي يُعتمد عليها. اقرأ الأصل الإنجليزي

التالي:
  • محوّل JSON إلى أصناف Java حوّل عينة JSON إلى POJO أو سجلات أو أصناف Lombok في Java مع تعليقات Jackson
  • منسّق JSON ومدقّقه نسّق JSON وتحقق منه وصغّره ورتّبه مع الموضع الدقيق لكل خطأ

كيفية تحويل JSON إلى data class في Kotlin

1

الصق عينة JSON، مثل استجابة API، في المربع الأيسر.

2

تظهر data class في Kotlin أثناء الكتابة، واحد لكل كائن، بخصائص بصيغة camelCase وتعليق توضيحي حيثما يختلف المفتاح.

3

اختر kotlinx.serialization أو Gson أو Moshi، وvar بدل val إن احتجت، واسم الصنف الجذر.

4

اضغط نسخ، أو تنزيل لحفظ Models.kt.

حول محوّل JSON إلى data class في Kotlin

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

كيف تُختار الأنواع.

قيمة JSON نوع Kotlin
"text" String
true / false Boolean
42 (أعداد صحيحة فقط) Int، أو Long بعد 32 بت
4.5 (ظهر أي كسر عشري) Double
null، ومعها نوع آخر String?، Int?
null فقط، أو أنواع مختلطة JsonElement? أو Any?
[ ... ] List<...>
{ } فارغ JsonObject أو Map<String, Any?>
{ ... } data class مستقل

المفاتيح المفقودة. تُدمج كل كائنات المصفوفة في صنف واحد. والمفتاح الذي يُسقطه بعضها يصبح قابلًا للقيمة الفارغة مع null قيمةً افتراضية، لأن kotlinx.serialization وMoshi يعدّان المفتاح المفقود بلا قيمة افتراضية خطأً. ويرفض kotlinx.serialization أيضًا المفاتيح التي لا خاصية لها، لذا يحصل كل مفتاح في العينة على خاصية.

الأسماء. تُكتب الخصائص بصيغة lowerCamelCase. وحيث يغيّر ذلك المفتاح، كما في user_name إلى userName، تحمل الخاصية @SerialName أو @SerializedName أو @Json(name = ...) حسب المكتبة. وتُكتب الكلمات المحجوزة مثل class بين علامتي backtick. وتُهرَّب علامة الدولار في نصوص التعليقات التوضيحية، لأن Kotlin كانت ستقرؤها قالبًا.

الخيارات. يعطي var بدل val خصائص قابلة للتغيير. ويصبح الكائن الفارغ صنفًا عاديًا، لأن data class تحتاج إلى خاصية واحدة على الأقل. اسم الصنف الجذر Root ما لم تسمّه.

فُحص كل ناتج بقراءة Kotlin مرة أخرى وفك ترميز 9 عينات بالقواعد الافتراضية لـ kotlinx.serialization. لا شيء مما تلصقه يغادر المتصفح.

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

كيف أحول JSON إلى data class في Kotlin؟

الصق عينة JSON في المحوّل فتظهر data class بجانبها، واحد لكل كائن. مع kotlinx.serialization أضف الإضافة وفك الترميز بـ Json.decodeFromString<Root>(text)؛ ومع Gson استخدم Gson().fromJson(text, Root::class.java)؛ ومع Moshi أنشئ محوّلًا لـ Root.

لماذا تنتهي بعض الخصائص بـ = null؟

المفتاح الذي تُسقطه بعض كائنات المصفوفة يحصل على نوع قابل للقيمة الفارغة وعلى null قيمةً افتراضية. يرفض كل من kotlinx.serialization وMoshi المفتاح المفقود ما لم يكن للخاصية قيمة افتراضية، لذا فالقيمة الافتراضية هي ما يتيح فك ترميز كل كائن في العينة.

أي مكتبة أختار؟

kotlinx.serialization هي مكتبة Kotlin نفسها، تعمل على كل منصات Kotlin وتفحص الأنواع عند الترجمة. ويناسب Moshi مع codegen مشاريع Android التي تستخدم Retrofit وOkio أصلًا. أما Gson فهو الأقدم ولا يحتاج إلى إعداد، لكنه يتجاهل أمان null في Kotlin والقيم الافتراضية عند إنشاء الكائنات.

كيف تُعالج مفاتيح مثل user_name أو class؟

تُكتب الخصائص بصيغة lowerCamelCase، فيصبح user_name بصيغة userName مع احتفاظ @SerialName أو @SerializedName أو @Json(name = ...) بالمفتاح الأصلي. والمفتاح الذي هو كلمة محجوزة في Kotlin، مثل class أو object، يُكتب بين علامتي backtick، فيبقى المفتاح هو الاسم الحقيقي للخاصية.

ما الأنواع التي تأخذها الأرقام في Kotlin؟

تصبح الأعداد الصحيحة Int، أو Long عندما تتجاوز قيمة ما 2,147,483,647، ويصبح الحقل Double بمجرد أن تحمل أي قيمة في العينة جزءًا عشريًا. والقيم من أنواع مختلفة تصبح JsonElement? مع kotlinx.serialization، أو Any? مع Gson وMoshi.

هل يُرفع ملف JSON الخاص بي؟

لا. يجري التحويل في متصفحك دون أي طلب إلى خادم، ولا يُحفظ JSON، فتبقى استجابات API التي تحمل رموز وصول أو بيانات شخصية على جهازك. أغلق التبويب ولن يبقى شيء.

المصادر

  • Kotlin documentation, keywords and operatorsHard keywords that need backticks as names
  • Kotlin documentation, coding conventions: naming rulesUpperCamelCase classes, lowerCamelCase properties
  • kotlinx.serialization guide, basic serialization@SerialName, optional properties need defaults, unknown keys are errors
  • Moshi README, Kotlin codegen@JsonClass(generateAdapter = true) and @Json(name = ...)

آخر تحقق في 16 أكتوبر 2026.

تتغير المعدلات والقواعد؛ راجع المصدر قبل الاعتماد على أي رقم.

هل ما زلت عالقًا؟ اسأل عن محوّل JSON إلى data class في Kotlin ويمكن لأي شخص يعرف الإجابة أن يجيب. لا حاجة إلى حساب.

أدوات ذات صلة

جميع أدوات المطورين
ترميز Base64 وفك ترميزهالنصوص والملفات إلى Base64 والعكس، مع وضع آمن لعناوين URL ومعاينة للصورمحوّل الطابع الزمني Unixمن الطوابع الزمنية Unix إلى تواريخ ومن التواريخ إلى طوابع زمنية، بأي منطقة زمنيةتحويل JSON إلى TypeScriptأنشئ واجهات أو أنواع TypeScript من عيّنة JSONتحويل CSV إلى JSONحوّل CSV إلى JSON وJSON إلى CSV، مع معاينة جدولتحويل YAML إلى JSONحوّل YAML إلى JSON وJSON إلى YAML، مع حلّ المراسيترميز عناوين URL وفك ترميزهارمّز النصوص وعناوين URL بالترميز المئوي أو فكّها، واعرض كل جزء من الرابطمحوّل أنظمة الأعدادالثنائي والثماني والعشري والست عشري وأي أساس حتى 36، بدقة تامة مهما كان الحجم، مع المتمم الثنائيColor ConverterHEX, RGB, HSL, HWB, OKLCH and CMYK in both directions, with a contrast check
هل كانت هذه الأداة مفيدة؟
Omnikit

مهام صغيرة تُنجز في متصفحك. مجانية وسريعة وخاصة. لا تُرفع الملفات أبدًا.

الملفات

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

المطورون

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

المال

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
الأدلةالأسئلةمن نحنكيف نتحققمكتبة القوانين (تجريبية)الخصوصيةالشروطالإفصاحاتصل بناMore: Exam practice (UGC NET Paper 1)يعمل في متصفحك. لا يُرفع أي شيء. © 2026 Omnikit (theomnikit.com)