Десериализация не работает, когда есть несколько узлов, доступных на одном уровне со значением, указанным в JsonRootName
Примечание. Оболочка настроена со следующими параметрами:
objectMapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
Класс:
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonRootName(value = "response")
public class UserProfile {
String name;
String link;
}
Ввод JSON (работает):
{
"response": {
"name": "User one:",
"link": "Some Link"
}
}
Ввод JSON (не работает)
{
"response": {
"name": "User one:",
"link": "Some Link"
},
"apiVersion" : 1.0
}
Добавление оболочки для полей response
и apiVersion
решит эту проблему, что лишит смысла использование тега JsonRootName
Как десериализовать, когда на корневом уровне имеется более одного поля (без использования другого класса-оболочки)?