Dans mon application de démarrage de printemps, j'utilise Jackson pour sérialiser des objets en injectant la variable ObjectMapper
si nécessaire .. J'ai trouvé cette réponse: https://stackoverflow.com/a/32842962/447426 Mais celle-ci crée un nouveau mappeur - avec les paramètres par défaut des jacksons.
Par contre, j'ai trouvé this dans le document officiel. Je n'ai pas vraiment compris. Il n'y a pas d'exemple de code.
Alors, comment configurer les ressorts ObjectMapper sur la base du mappeur d’objets par défaut de Springs?
Cette configuration doit être active sur "ObjectMapper" où qu'elle soit injectée.
Vous devriez utiliser Jackson2ObjectMapperBuilderCustomizer
pour cela
@Configuration
public class JacksonConfiguration {
@Bean
public Jackson2ObjectMapperBuilderCustomizer addCustomBigDecimalDeserialization() {
return new Jackson2ObjectMapperBuilderCustomizer() {
@Override
public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {
jacksonObjectMapperBuilder.featuresToDisable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
// Add your customization
// jacksonObjectMapperBuilder.featuresToEnable(...)
}
};
}
}
D'autre part, j'ai trouvé cela dans le document officiel. Je n'ai pas vraiment compris. Il n'y a pas d'exemple de code.
Cela signifie simplement que vous devez uniquement définir les propriétés correctes dans le fichier application.properties
pour activer ou désactiver les différentes fonctionnalités de Jackson.
spring.jackson.mapper.default-view-inclusion=false
spring.jackson.deserialization.fail-on-unknown-properties=false
P.S. J'aurais préféré ajouter ceci comme commentaire