Десериализация Джексона - игнорировать корневое свойство - PullRequest
0 голосов
/ 13 мая 2018

Я разрабатываю клиентскую библиотеку и ответ API, который возвращает служба, выглядит примерно так:

{ "status": "success", "data": { "currentState": "MY_STATE", "links": [ ... ] } }

У меня есть следующий Java Pojo, который должен быть сопоставлен с атрибутом data:

@Value @JsonRootName("data") public class UserStateDto { private UserStateName currentState; private List<Map<String, Object>> links; } И мой объект сопоставления имеет конфигурацию для развертывания корневого элемента: DeserializationFeature.UNWRAP_ROOT_VALUE

Но десериализация завершается неудачно, поскольку на корневом уровне есть атрибут status, который не отображается, и яполучить следующее исключение: com.fasterxml.jackson.databind.JsonMappingException: Root name 'status' does not match expected ('data') for type [simple type, class ....UserStateDto]

Можно ли как-то игнорировать свойства корневого уровня?По сути, я хочу добиться десериализации только атрибута data.Я хотел бы избежать введения дополнительной оболочки Java POJO поверх нее.

...