मैं वर्तमान में जैकसन 1.7 का उपयोग किसी तृतीय पक्ष लाइब्रेरी से किसी ऑब्जेक्ट को deserialize करने का प्रयास कर रहा हूं।मेरे @ जेसन क्रिएटर और मिक्सइन एनोटेशन के साथ क्या गलत है?
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.getDeserializationConfig().addMixInAnnotations(com.vividsolutions.jts.geom.Point.class, MixIn.class);
और मेरे Mixin वर्ग @JsonCreator साथ और तर्क के साथ एनोटेट प्वाइंट वस्तु वहाँ
का दृष्टांत के लिए:तो मैं इस तरह मेरी Mixin वर्ग का उपयोग करने के लिए अपने ObjectMapper की स्थापना
public class MixIn {
private static final GeometryFactory geometryFactory = GeometryFactoryFactory.getGeometryFactory();
@JsonCreator
public static Point createPoint(@JsonProperty("x")double x, @JsonProperty("y")double y) {
return geometryFactory.createPoint(new Coordinate(x, y));
}}
लेकिन मैं अपवाद
No suitable constructor found for type [simple type, class com.vividsolutions.jts.geom.Point]: can not instantiate from JSON object (need to add/enable type information?)
012 हो रही है
डिबगिंग से पता चलता है कि मेरी मिक्सइन कक्षा कभी नहीं बुलाई जाती है, मैंने सोचा कि इसे ठोस वर्ग होने की आवश्यकता है लेकिन इसका एक ही परिणाम था।
मैं क्या गलत कर रहा हूं? मेरी विन्यास में क्या गलत है?
धन्यवाद
बहुत बहुत शुक्रिया कि समझ में आता है, मुझे लगता है कि मेरी ही एकमात्र विकल्प उन सभी अन्य विशेषताओं की जरूरत _ (लगभग 3 और अधिक जटिल वस्तुओं :() क्रमानुसार करने है _ का उपयोग कर लक्ष्य वर्ग के लिए प्रयास करें कन्स्ट्रक्टर और मिक्सइन क्लास में उनका इस्तेमाल करें। क्या मैं सही हूं? – maverick
फिर से धन्यवाद, आखिरकार मैं क्षेत्र को छोड़कर विलुप्त होने के बाद समाप्त हो गया क्योंकि इसकी आवश्यकता नहीं है। – maverick
यह होने या कुछ समान, कक्षाओं के आसान deserialization के लिए अविश्वसनीय रूप से सहायक होगा संशोधित नहीं किया जा सकता है। कई मामलों में सामान्य deserialization बहुत मुश्किल है। – loesak