"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني منع قيم الحقول الفارغة أثناء تسلسل جاكسون؟

كيف يمكنني منع قيم الحقول الفارغة أثناء تسلسل جاكسون؟

تم النشر بتاريخ 2024-12-21
تصفح:372

How Can I Suppress Null Field Values During Jackson Serialization?

التعامل مع قيم الحقول الخالية في تسلسل جاكسون

توفر مكتبة تسلسل Java الشائعة خيارات تكوين متنوعة لتخصيص سلوك التسلسل الخاص بها. أحد السيناريوهات الشائعة هو منع تسلسل قيم الحقول الخالية. وهذا يضمن تضمين الخصائص غير الخالية فقط في الإخراج المتسلسل.

تكوين جاكسون لقمع القيمة الخالية

هناك طريقتان أساسيتان لتوجيه جاكسون لتجاهل القيمة الخالية قيم الحقول أثناء التسلسل.

1. استخدام إدراج التسلسل:

ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

ينطبق هذا التكوين العام على جميع الحقول في جميع الفئات التي تتم معالجتها بواسطة ObjectMapper. إنه يضمن حذف أي حقل ذو قيمة فارغة من الإخراج المتسلسل.

2. استخدام التعليق التوضيحيJsonInclude:

@JsonInclude(Include.NON_NULL) الطبقة العامة SomeClass { سلسلة خاصة someValue؛
@JsonInclude(Include.NON_NULL)
public class SomeClass {
    private String someValue;
}
يسمح لك تطبيق التعليق التوضيحي @JsonInclude على فئة أو أسلوب getter بتحديد سلوك التسلسل لخصائص أو فئات فرعية محددة. من خلال إعداد Include.NON_NULL، فإنه يشير إلى أنه يجب إجراء تسلسل للقيم غير الخالية فقط لهذا الحقل.

الأساليب البديلة

وبدلاً من ذلك، يمكنك استخدام التعليق التوضيحي @JsonInclude في طريقة getter لخاصية معينة لإجراء تسلسل مشروط للخاصية فقط عندما لا تكون قيمتها فارغة.

@JsonInclude(value = JsonInclude.Include.NON_NULL، الشرط = JsonInclude.Include.Condition.NON_NULL) سلسلة عامة getSomeValue() { إرجاع بعض القيمة؛

@JsonInclude(Include.NON_NULL)
public class SomeClass {
    private String someValue;
}
اعتبارات إضافية

لاحظ أن هذه التكوينات لا تؤثر على عملية إلغاء التسلسل. إذا تمت مواجهة قيمة فارغة أثناء إلغاء التسلسل، فسيتم تعيينها في الحقل المقابل. للتحكم في سلوك إلغاء التسلسل، راجع وثائق جاكسون لـ @JsonIgnoreProperties و@JsonIgnore.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3