→ جميع الأدوات Code Gen

مولّد أصناف Java من JSON

الصق JSON واحصل فورًا على أصناف Java جاهزة للإنتاج بأنواع وتعليقات صحيحة.

أوضاع مخرجات POJO وRecord وJackson

تُعدّ Plain Old Java Objects أو POJOs أكثر تنسيقات المخرجات توافقًا: حقول خاصة مع getters وsetters عامة ومُنشئ بدون وسيطات ومُنشئ بجميع الوسيطات. يفهم هذا النمط كل مكتبة تسلسل Java — Jackson وGson وMoshi — وكل إطار عمل Java.

تنتج records من Java 16+ كودًا أكثر إيجازًا لحاملات البيانات غير القابلة للتغيير. يولّد تصريح record تلقائيًا المُنشئ والـ getters (مسمّاة بعد المكوّن بدون بادئة "get") وequals() وhashCode() وtoString(). تُعدّ Records مثالية لحالات استخدام DTO وvalue-object حيث تكون عدم قابلية التغيير مطلوبة.

يضيف وضع تعليق Jackson عبارة @JsonProperty("originalKey") لكل حقل حتى تتمكن أسماء الحقول بصيغة camelCase في Java من الربط بمفاتيح JSON بأي أسلوب تنسيق. تُوضع @JsonIgnoreProperties(ignoreUnknown = true) على كل صنف لمنع فشل إلغاء التسلسل عندما تضيف API حقولًا جديدة. المخرجات جاهزة للاستخدام مع @RequestBody وRestTemplate في Spring Boot.

تعيين الأنواع واصطلاحات التسمية

سلاسل JSON تُعيَّن إلى String والأعداد الصحيحة إلى int (أو Integer لـ nullable) والكسور العشرية إلى double (أو Double) والقيم المنطقية إلى boolean (أو Boolean) والحقول ذات null فقط إلى Object مع تعليق. المصفوفات تُحوَّل إلى List<T> حيث T هو صنف العنصر المستنتج. الكائنات المتداخلة تولّد أصناف منفصلة مسمّاة بصيغة PascalCase بعد مفاتيحها.

تُحوَّل مفاتيح JSON تلقائيًا إلى معرّفات Java صالحة: تُحذف الشرطات والمسافات ويُكتب الحرف التالي بالأحرف الكبيرة (camelCase). المفاتيح التي تبدأ بأرقام تحصل على بادئة شرطة سفلية. الكلمات المحجوزة في Java تُهرَّب بإضافة شرطة سفلية في النهاية.

تصريح الحزمة في أعلى كل ملف هو "com.example.model" افتراضيًا لكن يمكن تخصيصه. تُضاف الاستيرادات لـ java.util.List وتعليقات Jackson تلقائيًا حسب الحاجة.

التكامل مع Spring Boot والمؤسسات

تحتاج تطبيقات Spring Boot التي تستهلك REST APIs إلى أصناف طلب واستجابة مكتوبة بالأنواع. الصق عقد JSON من توثيق API وولّد POJOs مُعلَّقة بـ Jackson وأدرجها في طبقة الخدمة الخاصة بك.

يمكن إضافة تعليقات Lombok (@Data و@NoArgsConstructor و@AllArgsConstructor و@Builder) إلى مخرجات POJO للتخلص من كود الـ getters/setters المتكرر. مع Lombok يتقلص POJO المولّد إلى تصريحات الحقول فحسب والتعليقات على مستوى الصنف.

عند التكامل مع JPA أو Hibernate تخدم POJOs المولّدة كنقطة بداية لأصناف الكيان. إضافة @Entity و@Id و@Column فوق المخرجات المولّدة يمنحك مسودة أولى لكيان JPA من نموذج بيانات JSON.

FAQ

هل تُرسَل بياناتي إلى خادم؟

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

أي وضع مخرجات يجب أن أستخدم؟

استخدم POJO لأقصى توافقية وعندما تحتاج قابلية التغيير. استخدم records للـ DTOs غير القابلة للتغيير في Java 16+. استخدم وضع Jackson عندما يستهلك تطبيقك REST APIs خارجية.

كيف تُعالَج الكلمات المحجوزة في Java كأسماء حقول؟

الكلمات المحجوزة مثل "class" و"interface" و"default" و"new" تحصل على شرطة سفلية كلاحقة (مثلًا class_) وتعليق @JsonProperty يحافظ على مفتاح JSON الأصلي.

هل يدعم المولّد Lombok؟

نعم. فعّل مفتاح Lombok لاستبدال getters وsetters والمُنشئات الصريحة بتعليقات @Data و@NoArgsConstructor و@AllArgsConstructor.

ما إصدار Java المستهدف؟

تستهدف المخرجات الافتراضية Java 11 (باستخدام List<T> من java.util). يبدّل وضع Java 16+ مخرجات POJO إلى records. يتجنب وضع توافق Java 8 استخدام var والميزات الحديثة الأخرى.

أدوات ذات صلة