سؤال

أنا أستخدم ObjectMapper من مكتبة جاكسون لإلغاء التخلص من JSON في كائنات Java. أنا أستخدم الربيع "الأسلاك". لقد قمت بإنشاء مخصصات مخصصة لإجراء التحويل من سلسلة JSON إلى PoJO. ومع ذلك ، عندما يكون الإدخال سيئًا (على سبيل المثال ، يتم تمرير عدد كـ "124a" - شخصية غير قانونية) يتم استدعاء deserialiser الافتراضي والقنابل مع numberformatexception. هل هناك طريقة لمنع استدعاء المحولات الافتراضية؟

هل كانت مفيدة؟

المحلول

حسنًا ، نظرًا لأن الإدخال غير صالح JSON (لا يمكن أن تبدأ الأرقام أو تحتوي على "$") ، فلن يتم استدعاء Deserializer ، وسيتعين على أي تغيير التقدم على المحلل. لا توجد مفاتيح في جاكسون للسماح بأن يتم اعتبار هذا المحتوى أرقامًا.

إذا كنت تستطيع التحكم في الإدخال ، فما عليك سوى تغيير القيمة إلى سلسلة (أضف نقاطًا مزدوجة حول القيمة). يقوم المحللون بعد ذلك بتمريره كسلسلة JSON ، وتحصل مكونات ربط البيانات على فرصة للتعامل معها (JSondeserializer).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top