حوّل عينة JSON إلى POJO أو سجلات أو أصناف Lombok في Java مع تعليقات Jackson
يعمل في متصفحك. لا يُرسل أي شيء تكتبه إلى أي مكان. تم التحقق في 16 أكتوبر 2026.الصق عينة JSON واحصل على أصناف Java مع تعليقات Jackson، على شكل POJO مع getters وsetters، أو سجلات (records)، أو Lombok @Data. تصبح الأعداد الصحيحة int، وlong بعد 2,147,483,647، وأي كسر عشري يجعل الحقل double، والقيمة null أو المفقودة تستخدم النوع المغلِّف، مثل Integer.
تُرجمت هذه الصفحة آليًا من الأصل الإنجليزي. لم يراجع أي شخص هذه الترجمة بعد، لذا فالنسخة الإنجليزية هي التي يُعتمد عليها. اقرأ الأصل الإنجليزي
الصق عينة JSON، مثل استجابة API، في المربع الأيسر.
يظهر Java أثناء الكتابة: ملف Root.java واحد فيه صنف ساكن متداخل لكل كائن، وحقول بصيغة camelCase، و@JsonProperty حيث يختلف المفتاح.
اختر POJO مع getters وsetters، أو سجلًا (Java 16+)، أو Lombok @Data، وحدد اسم الصنف الجذر.
اضغط نسخ، أو تنزيل لحفظ Root.java، ثم اقرأ JSON باستخدام ObjectMapper من Jackson.
تقرأ Java ملفات JSON إلى أصناف، عادةً باستخدام Jackson، ويحتاج كل كائن في JSON إلى صنف تحمل حقوله الأنواع والأسماء الصحيحة. يكتب هذا المحوّل تلك الأصناف من عينة، فتتحول استجابة API طويلة إلى Java قابل للترجمة بلصقة واحدة.
كيف تُختار الأنواع.
| قيمة JSON | نوع Java |
|---|---|
| "text" | String |
| true / false | boolean |
| 42 (أعداد صحيحة فقط) | int، أو long بعد 32 بت |
| 4.5 (ظهر أي كسر عشري) | double |
| null، أو مفقود في بعض العناصر | Integer، Boolean، Double |
| null فقط، أو أنواع مختلطة | Object |
| [ ... ] | List<...> |
| { } فارغ | Map<String, Object> |
| { ... } | صنف ساكن متداخل |
ملف واحد. الناتج ملف Root.java واحد: يضم الصنف الجذر كل الأصناف الأخرى بوصفها أصنافًا متداخلة public static، يستطيع Jackson إنشاءها ولا تحتاج إلى ملفات إضافية. وعندما يكون JSON مصفوفة أو قيمة مفردة، يذكر تعليق النوع الذي يُقرأ إليه، مثل List<Root.RootItem>.
الأسماء والمفاتيح. تُكتب الحقول بصيغة camelCase، فيصبح user_name بصيغة userName مع احتفاظ @JsonProperty("user_name") بالمفتاح. وتحصل كلمات Java المحجوزة على شرطة سفلية، مثل class_. ويُكتب حقل مثل xCoord بصيغة xcoord، لأن Jackson كان سيربطه بخلاف ذلك بالدالة getXCoord تحت اسم مختلف. ويُتجاهل المفتاح الفارغ عبر @JsonIgnoreProperties، إذ لا يستطيع Jackson تسميته.
ثلاثة أنماط. يحوي POJO حقولًا خاصة وgetters وsetters ويعمل في كل مكان. والسجل (Java 16+) قصير وغير قابل للتغيير. ويحتفظ Lombok @Data بالحقول ويترك لـ Lombok كتابة الباقي.
تُرجم ناتج POJO لـ 9 عينات باستخدام javac وقرأه Jackson 2.17 مع اعتبار المفاتيح غير المعروفة وقيم null في الأنواع الأولية أخطاءً. لا شيء مما تلصقه يغادر المتصفح.
الصق عينة JSON في المحوّل فيظهر Java بجانبها: ملف Root.java واحد فيه صنف ساكن متداخل لكل كائن. أضف Jackson إلى المشروع واقرأ JSON باستخدام new ObjectMapper().readValue(json, Root.class)، الذي يملأ كل حقل من مفتاحه.
وضع كل الأصناف داخل Root يُبقي النموذج كله في ملف واحد يُترجم كما هو. لا يستطيع Jackson إنشاء صنف متداخل إلا إذا كان ساكنًا، لأن الصنف الداخلي يحتاج أولًا إلى نسخة من صنفه الخارجي، لذا يُعلن كل صنف متداخل بوصفه public static.
يستخدم الحقل النوع المغلِّف، مثل Integer أو Long أو Double أو Boolean، عندما تُظهره العينة بقيمة null أو تُسقط بعض الكائنات مفتاحه. لا يستطيع int الأولي حمل null، والمفتاح المفقود كان سيصبح 0 بصمت، لذا يفصل النوع المغلِّف بين القيمة المفقودة والصفر.
السجلات، منذ Java 16، هي الأقصر وغير قابلة للتغيير، ويقرؤها Jackson 2.12 أو أحدث مباشرة. ويعمل POJO مع getters وsetters على أي إصدار من Java ومع كل مكتبة. أما @Data من Lombok فيكتب getters وsetters نيابة عنك عند الترجمة، فيبقى الكود المصدري قصيرًا.
يعثر Jackson على الخصائص عبر getters، ويسمّي getXCoord باسم xcoord بتصغير الأحرف الكبيرة في البداية. حينها لن يلتقي حقل باسم xCoord بدالة getter الخاصة به، وستنقسم الخاصية إلى اثنتين. لذلك يُسمى الحقل xcoord، مع احتفاظ @JsonProperty("xCoord") بالمفتاح الأصلي.
لا. يجري التحويل في متصفحك دون أي طلب إلى خادم، ولا يُحفظ JSON، فتبقى استجابات API التي تحمل رموز وصول أو بيانات شخصية على جهازك. أغلق التبويب ولن يبقى شيء.
تتغير المعدلات والقواعد؛ راجع المصدر قبل الاعتماد على أي رقم.
هل ما زلت عالقًا؟ اسأل عن محوّل JSON إلى أصناف Java ويمكن لأي شخص يعرف الإجابة أن يجيب. لا حاجة إلى حساب.