Ignorowanie niektórych pól w JSONie - Spring Boot, Jackson

0

Czołem.
Mam aplikację w Spring Boot.
Mam sobie @RestControllery, które zwracają mi potrzebne JSONy.
Mam dwie klasy domenowe, są do siebie w relacji ManyToOne.
Chciałbym zawęzić zwracane przez moje RESTowe API wyniki - nie chce wszystkiego pchać do klienta, to bez sensu. Chciałbym dostawać więcej detali w bardziej zawężonych requestach.

Wiem, że istnieje adnotacja @JsonIgnore, ale nie chcę wycinać wszystkich propertiesów na poziomie klasy domenowej bo będę ich potrzebował właśnie w tych bardziej zawężonych zapytaniach.

Są metody w kontrolerze, w których chciałbym żeby odpowiedź była pełna, a są takie w których chciałbym to odfiltrować.

Moje pytanie jest następujące: czy na poziomie metod kontrolerów idzie odfiltrować zwracanego JSONa?

0

Przypisz tuż przed zwróceniem null do niechcianych pól.

EDIT: I ustaw, aby pola null nie były pokazywane w JSON. Bodaj tak (nie testowane):

ObjectMapper objMapper = new ObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL);
0

Dzięki wszystkim.
Przekopując stacka i docsy Jacksonowe znalazłem fajną bibliotekę: https://github.com/monitorjbl/json-view
Łatwo to zintegrować ze Springiem. Chyba powstało toto jeszcze przed zaimplementowaniem @JsonView do Jacksona (niech mnie ktoś poprawi jeślim w błędzie) ale jest bardziej intuicyjne w użyciu i konfiguracji.
Dodajemy zależność, dodajemy sobie beana a potem w metodzie kontrolerowej wołamy nasz filtr, który filtruje nam naszą odpowiedź bądź dorzuca to, co potraktowaliśmy @JsonIgnorem.
Jak dla mnie - o wiele lepsze niż adnotowanie poszczególnych pól w entity @JsonViewem.

Dzięki za Wasz czas.

1 użytkowników online, w tym zalogowanych: 0, gości: 1