Spring Jackson @JsonIgnoreProperties potrzebne?

Odpowiedz Nowy wątek
2019-06-05 21:01

Rejestracja: 3 lata temu

Ostatnio: 2 tygodnie temu

0

Witam
uczę się springa i z tego co wiem jak mam
najprostszego POST'a w springu
i w postmanie w body dam obiekt z fieldami dodatkowymi to powinien mi Spring rzucić wyjątek a tymczasem zachowuje się tak jakbym na Dto w @RequestBody dodał @JsonIgnoreProperties(ignoreUnknow= true)
próbowałem też zmienić parametr na wartośc domyślną czyli false i nie ma to znaczenie.
W każdym przypadku mogę dodać nowe fieldy w postmanie w body Jsona wysyłanego z callem POST'a i przechodzi.
Nie wrzucam kodu bo z tego co widzę w każdym przypadku jaki tylko example z neta znajdę działa to tak jak opisałem
a wiem, że te adnotacje są potrzebne.
Czemu nie ma to efektu?

Pozostało 580 znaków

2019-06-05 21:47

Rejestracja: 2 lata temu

Ostatnio: 1 dzień temu

0

Zakładając, że mówisz defaultowym Spring MVC:

The ObjectMapper (or XmlMapper for Jackson XML converter) instance (created by default) has the following customized properties:
...
DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES is disabled

Pozostało 580 znaków

2019-06-05 22:06

Rejestracja: 3 lata temu

Ostatnio: 2 tygodnie temu

0

faktycznie przez to nie działa,
dodałem config:

  @Bean
    public Jackson2ObjectMapperBuilder jacksonBuilder() {
        Jackson2ObjectMapperBuilder b = new Jackson2ObjectMapperBuilder();
        b.failOnUnknownProperties(true);
        return b;
    }

i teraz faktycznie spring wyrzuca mi exception.
Tyle, że teraz mam odwrotną sytuację -> cawsze failuje z dodatkowym polem mimo dodania @JsonIgnoreProperties(ignoreUnknow= true)
czemu nie moge tym sterować właśnie z poziomu '@JsonIgnoreProperties(ignoreUnknow= true)' a nie tylko rozwiązanie globalne, które przecież nie wszędzie musi być dla mnie odpowiednie.

Pozostało 580 znaków

2019-06-05 22:13

Rejestracja: 3 lata temu

Ostatnio: 2 tygodnie temu

0

sorki za post za postem ale che pokazać jak zmieniłem, że zadziałało:
przerobiłem config:

   @Bean
    public Jackson2ObjectMapperBuilder jacksonBuilder() {
        Jackson2ObjectMapperBuilder b = new Jackson2ObjectMapperBuilder();
        b.annotationIntrospector(new JacksonAnnotationIntrospector());
        b.failOnUnknownProperties(true);
        return b;
    }

i teraz czyta adnotacje

Pozostało 580 znaków

Odpowiedz

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