मेरे पास एक जावा वर्ग है MyPojo
जिसे मैं JSON से अलग करने में दिलचस्पी रखता हूं। मैंने एक विशेष MixIn वर्ग को कॉन्फ़िगर किया है MyPojoDeMixIn
, ताकि मुझे डीरिएलाइज़ेशन के साथ सहायता करने के लिए।MyPojo
केवल हैint
और String
उदाहरण चर उचित गेटर्स और बसने के साथ संयुक्त है। MyPojoDeMixIn
कुछ इस तरह दिखता है:
public abstract class MyPojoDeMixIn {
MyPojoDeMixIn(
@JsonProperty("JsonName1") int prop1,
@JsonProperty("JsonName2") int prop2,
@JsonProperty("JsonName3") String prop3) {}
}
मेरे परीक्षण ग्राहक में मैं निम्नलिखित कार्य करता हूं, लेकिन निश्चित रूप से यह संकलन समय पर काम नहीं करता है क्योंकि वहाँ है JsonMappingException
एक प्रकार का बेमेल से संबंधित है।
ObjectMapper m = new ObjectMapper();
m.getDeserializationConfig().addMixInAnnotations(MyPojo.class,MyPojoDeMixIn.class);
try { ArrayList<MyPojo> arrayOfPojo = m.readValue(response, MyPojo.class); }
catch (Exception e) { System.out.println(e) }
मुझे पता है कि मैं एक "रिस्पांस" ऑब्जेक्ट बनाकर इस मुद्दे को कम कर सकता हूं, जिसमें केवल एक ही ArrayList<MyPojo>
है, लेकिन फिर मुझे हर एक प्रकार के लिए कुछ बेकार वस्तुओं को बनाना होगा जो मैं वापस लौटना चाहता हूं।
मैंने जैक्सनइनफाइवमाइन्स पर ऑनलाइन भी देखा लेकिन इस बारे में सामान को समझने में एक भयानक समय था Map<A,B>
और यह मेरे मुद्दे से कैसे संबंधित है। यदि आप नहीं बता सकते हैं, तो मैं पूरी तरह से जावा में नया हूं और एक ओब्ज-सी पृष्ठभूमि से आता हूं। वे विशेष रूप से उल्लेख करते हैं:
POJOs और "सरल" प्रकारों के लिए बाध्य करने के अलावा, एक अतिरिक्त प्रकार है: जेनेरिक (टाइप किए गए) कंटेनरों के लिए बाध्यकारी। इस मामले में तथाकथित टाइप एरासुरे (जावा द्वारा इस्तेमाल की गई चीज़ों को कुछ हद तक पीछे की ओर संगत तरीके से लागू करने) के कारण विशेष हैंडलिंग की आवश्यकता होती है, जो आपको संग्रह.क्लास (जो संकलन नहीं करता है) जैसी किसी चीज़ का उपयोग करने से रोकता है।
इसलिए यदि आप डेटा को मैप में बांधना चाहते हैं तो आपको उपयोग करने की आवश्यकता होगी:
Map<String,User> result = mapper.readValue(src, new TypeReference<Map<String,User>>() { });
मैं सीधे किस प्रकार इसका वर्णन कर सकता हूं ArrayList
?