У меня есть веб-служба Spring, в которой контроллер возвращает объекты Java. Я установил свое обслуживание, чтобы использовать @RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE)
, чтобы ответ был в Json. Насколько я понимаю, Spring использует Jackson для сериализации Java-объекта Json. У меня есть класс, для которого я хочу создать пользовательский сериализатор json. Единственная причина, по которой я хочу использовать собственный сериализатор, - это не сериализовать определенное свойство объекта как часть ответа API.Spring Jackson, исключая определенные свойства при сериализации
Например:
Мой метод возвращает контроллер Foo
. Spring будет сериализовать все свойства как часть ответа API. Но я хотел бы исключить rawBar
.
public final class Foo{
Bar propBar;
Bar intermediateBar;
Bar rawBar;
FooBar status;
}
Я видел примеры использования StdSerializer<T>
для создания пользовательского сериалайзера. Но, делая это, я должен буду написать собственный код для сериализации других свойств. Есть ли способ исключить конкретное свойство? Кроме того, Foo
является частью сторонней библиотеки, поэтому внесение изменений в этот класс невозможно. Возможно ли создать собственный сериализатор для Foo
, но затем использовать сериализатор по умолчанию для сериализации всех свойств, кроме rawBar
?
Foo является частью библиотеки третьей стороны, поэтому внесение изменений в этот класс невозможно – AndroidDev93
ответ обновлен, проверьте, работает ли он. – mhshimul
Попробуйте использовать аннотацию @JsonIgnore поверх атрибута, который необходимо исключить. Это в библиотеке Джексона. – user121290