Джексон JSON + Java Generics получают LinkedHashMap

У меня есть вопрос, который похож на некоторые вопросы в stackoverflow, но ни один из них не отвечает на мою проблему. Я использую 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 в список 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;
}

Но я возвращаю List из LinkedHashMaps .

Что не так с моим кодом?

25
задан pb2q 27 May 2012 в 18:06
поделиться