Mam schemat JSON i ciąg json, który pasuje do schematu, ale może zawierać kilka dodatkowych pól. Jackson rzuci wyjątek, jeśli te pola istnieją, jeśli nie dodaję objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
. Czy istnieje sposób na uzyskanie kolekcji tych dodatkowych pól do ich zalogowania, nawet jeśli wyrzucę wyjątek?Wyświetl listę nieznanych pól z Jackson
Oto odpowiedni kawałek kodu:
public boolean validate(Message<String> json) {
List<String> errorList = jsonSchema.validate(json.getPayload());
ObjectMapper mapper = new ObjectMapper();
try {
Update update = mapper.readValue(json.getPayload(), Update.class);
} catch (IOException e) {
System.out.println("Broken");
}
if(!errorList.isEmpty()) {
LOG.warn("Json message did not match schema: {}", errorList);
}
return true;
}
Problem polega na tym, że klasa Update jest generowana automatycznie, więc wszystko, co dodaję, zostanie wymazane. Jakieś inne pomysły? – Tavo
@ Tavo Rozszerz klasę aktualizacji. –