@Jsonignoreproperties использование для известных и неизвестных свойств
моя текущая аннотация для игнорирования известных свойств для сущности JPA:
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler","created","updated","createdBy","lastUpdatedBy"})
в дополнение к игнорированию этих свойств класса я также хотел бы игнорировать любые неизвестные свойства, которые получает сервер. Я знаю единственный способ игнорировать неизвестные свойства следующей аннотацией:
@JsonIgnoreProperties(ignoreUnknown=true)
но не уверен, как добавить это к моей текущей аннотации, приведенной выше. Я пробовал несколько методов ОС, но ни один не работает, и я не мог найти пример online для этого сценария.
любой пример или приводит к документации также поможет.
1 ответов
короткий ответ:
Set ignoreUnknown
to true
и определите имена свойств, которые нужно игнорировать в value
элемент:
@JsonIgnoreProperties(ignoreUnknown = true,
value = {"hibernateLazyInitializer", "handler", "created"})
как это работает?
посмотрите на эту цитату из документация (выделение мое):
в простейшем виде аннотация выглядит следующим образом:
@Entity
символ знака at (
@
) указывает компилятору, что речь идет об аннотации. В следующем примере имя ПримечанияOverride
:@Override void mySuperMethod() { ... }
аннотация может включать в себя элементов, который может быть назван или неназван, и есть значения для этих элементов:
@Author(name = "Benjamin Franklin", date = "3/27/2003") class MyClass() { ... }
или
@SuppressWarnings(value = "unchecked") void myMethod() { ... }
если есть только один элемент с именем
value
, тогда имя можно опустить, например:@SuppressWarnings("unchecked") void myMethod() { ... }
другой способ обрабатывать неизвестные свойства
чтобы игнорировать неизвестные свойства, вы также можете сделать:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);