मेरे समस्या त्रुटि काफी सरल है: मैं निम्नलिखित सरल वर्ग है:जैक्सन अक्रमांकन निपटने
public class Foo {
private int id = -1;
public void setId(int _id){ this.id = _id; }
public int getId(){ return this.id; }
}
और मैं निम्नलिखित JSON कार्रवाई करने के लिए कोशिश कर रहा हूँ:
{
"id": "blah"
}
जाहिर है, वहाँ एक समस्या यहाँ है ("blah" को int में पार्स नहीं किया जा सकता है)
पूर्व में, जैक्सन ने org.codehaus.jackson.map.JsonMappingException की तरह कुछ फेंकता है: स्ट्रिंग से java.lang.Integer का उदाहरण नहीं बना सकता मान 'blah': मान्य इंटीजर मान
मैं इसके साथ सहमत हूं, लेकिन मैं इस प्रकार की मैपिंग त्रुटियों को अनदेखा करने की अनुमति देने के लिए कहीं कुछ पंजीकरण करना चाहता हूं। मैंने एक DeserializationProblemHandler के साथ प्रयास किया (here देखें) लेकिन ऐसा लगता है कि यह केवल अज्ञात गुणों पर काम करता है और deserialization समस्याओं नहीं।
क्या आपको इस मुद्दे पर कोई संकेत है?
क्यों आप इस त्रुटि को अनदेखा करना चाहते हैं? मैं प्रत्येक ग्राहक को '400' का एक HTTP कोड वापस कर दूंगा जो मुझे इस तरह संसाधन संसाधन प्रस्तुत करने की कोशिश करता है :) –
मैं जैक्सन का उपयोग स्प्रिंग एमवीसी और बीन सत्यापन के साथ कर रहा हूं। समस्या यह है कि जैक्सन वसंत एमवीसी परत तक पहुंचने से पहले, deserialization समस्याओं के बारे में शिकायत कर रहा है .. इसलिए मैं अपने ग्राहक को लगातार तरीके से त्रुटियों को नहीं भेज सकता। –
इसके अलावा मैं (एक के लिए) जैक्सन को अक्सर किसी ऑब्जेक्ट के एक पठनीय डंप को लॉग में करने के लिए उपयोग करता हूं। क्रमबद्धता मुद्दों को ध्यान में रखकर और आगे बढ़ना बहुत उपयोगी है –