Я разрабатываю клиентскую библиотеку и ответ 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 поверх нее.