जैक्सन 2.5 से, हल करने के लिए एक सुंदर तरीका जो TypeFactory.constructParametricType (क्लास पैराट्राइज्ड, क्लास ... पैरामीटर क्लैक्सेस) विधि का उपयोग कर रहा है
,JavaType
जो पैरामीटर वर्ग और इसके पैरामीटर प्रकारों को निर्दिष्ट करके एक जैक्सन को स्पष्ट रूप से परिभाषित करने की अनुमति देता है ।
आप के लिए deserialize करना चाहते हैं की आपूर्ति Data<String>
यह मानते हुए , आप कर सकते हैं:
// the json variable may be a String, an InputStream and so for...
JavaType type = mapper.getTypeFactory().constructParametricType(Data.class, String.class);
Data<String> data = mapper.readValue(json, type);
ध्यान दें कि यदि वर्ग कई पैरामीटर प्रकारों की घोषणा करता है, तो यह वास्तव में कठिन नहीं होगा:
class Data <T, U> {
int found;
Class<T> hits;
List<U> list;
}
हम कर सकते थे :
JavaType type = mapper.getTypeFactory().constructParametricType(Data.class, String.class, Integer);
Data<String, Integer> data = mapper.readValue(json, type);