Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
576 views
in Technique[技术] by (71.8m points)

java - Spring Boot 1.4 Customize Internal Jackson Deserialization

I am using spring.jackson.deserialization.FAIL_ON_UNKNOWN_PROPERTIES=true in the application.properties to make deserialization fail on unknown properties but its not working.

I even tried using :

@Bean
ObjectMapper objectMapper() {
  return Jackson2ObjectMapperBuilder
        .json()
        .featuresToEnable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
        .build();
}

But this also didn't work. What am I missing?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

With Spring boot, by default, unknown properties are ignored during deserialization. In order not to ignore these properties, you can :

  • Add spring.jackson.deserialization.FAIL_ON_UNKNOWN_PROPERTIES=true in the application.properties
  • Use this bean :

    @Bean
    public ObjectMapper objectMapper() {
        return Jackson2ObjectMapperBuilder
        .json()
        .featuresToEnable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
        .build();
    }
    
  • Use this bean :

    @Bean 
    public Jackson2ObjectMapperBuilder objectMapperBuilder(){
        Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
        builder.failOnUnknownProperties(true);
        return builder;
    }
    

I have tested these solutions and it works so there is another problem in your code. Please, can you post your code as ask by javaguy?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...