मेरे पास एक प्रश्न है जो स्टैक ओवरफ्लो पर कुछ प्रश्नों के समान है लेकिन कोई भी वास्तव में मेरी समस्या का उत्तर नहीं देता है। मैं जैक्सन के ObjectMapper
का उपयोग करें और उपयोगकर्ता वस्तुओं का एक सूची में इस JSON स्ट्रिंग पार्स करने के लिए करना चाहते हैं:जैक्सन जेएसओएन + जावा जेनेरिक लिंकड हैशैप
[{ "user" : "Tom", "role" : "READER" },
{ "user" : "Agnes", "role" : "MEMBER" }]
मैं इस तरह एक आंतरिक वर्ग को परिभाषित:
public class UserRole {
private String user
private String role;
public void setUser(String user) {
this.user = user;
}
public void setRole(String role) {
this.role = role;
}
public String getUser() {
return user;
}
public String getRole() {
return role;
}
}
एक सूची के लिए JSON स्ट्रिंग पार्स करने
protected <T> List<T> mapJsonToObjectList(String json) throws Exception {
List<T> list;
try {
list = mapper.readValue(json, new TypeReference<List<T>>() {});
} catch (Exception e) {
throw new Exception("was not able to parse json");
}
return list;
}
लेकिन क्या मैं वापस पाने के LinkedHashMaps
के List
है: UserRoles
की मैं जेनरिक का उपयोग करें।
मेरे कोड में क्या गलत है?
यह जावा भाषा, और कुख्यात प्रकार विलोपन है: वहाँ में टी एक प्रकार चर रहा है और परिभाषा टाइप नहीं; और मूल रूप से इसका मतलब है कि आप सूची