我有一個類似於在stackoverflow的一些問題,但沒有真正回答我的問題的問題。我用傑克遜的ObjectMapper
並希望這個JSON字符串解析爲用戶對象的列表:Jackson JSON + Java泛型得到LinkedHashMap
[{ "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字符串到列表的UserRoles
我使用泛型:
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
。
我的代碼有什麼問題?
這是Java語言,和臭名昭著的類型擦除:T IN有一個類型的變量,而不是類型定義;基本上意味着你要求名單