2015-02-13 7 views
0

Моя джексон строка была следующей,Джексон Массив сериализации и десериализации

{ 
"Response":{ 
    "users":[{"userId":"1", "userName":"User 1"},{"userId":"2", "userName":"User 1"}] 
} 
} 

My classes are following, 

public class Response { 
    private List<User> users; 
// getters and setters 
} 

public class User{ 
private String userId; 
private String userName; 

//getters and setters 
} 

Когда я попытался получить объект Java из выше строки JSON. Это дает мне следующую ошибку. Любая идея, как это исправить?

com.fasterxml.jackson.databind.JsonMappingException: Неожиданный маркер (START_ARRAY), как ожидается START_OBJECT: потребность JSON объект содержит информацию о типе As.WRAPPER_OBJECT для класса

+0

Вам нужен еще один класс для примера класса ResponseJson {частного ответа Response; } –

+0

Вы должны Wrap Response в другом объекте в этом случае, чтобы десериализовать такой json. – Gaskoin

+0

Пробовал. Это также дает мне такую ​​же ошибку. – user3098173

ответ

0

Вам нужно добавить еще один класс обертку:

class ResponseJson { 
    @JsonProperty("Response") 
    private Response response; 
    // getters, setters 
} 

Также вы эта аннотация нужда @JsonPropery, потому что джексон имеют некоторые проблемы с прописной деталью имени поля: https://github.com/swagger-api/swagger-codegen/issues/249

Смежные вопросы