Maison > Java > javaDidacticiel > Comment puis-je faire en sorte que Spring utilise mon ObjectMapper personnalisé pour la sérialisation et la désérialisation ?

Comment puis-je faire en sorte que Spring utilise mon ObjectMapper personnalisé pour la sérialisation et la désérialisation ?

Barbara Streisand
Libérer: 2024-12-05 10:24:12
original
227 Les gens l'ont consulté

How Can I Make Spring Use My Custom ObjectMapper for Serialization and Deserialization?

Configuration d'ObjectMapper au Spring

Au Spring, l'ObjectMapper peut être configuré pour personnaliser le comportement des processus de sérialisation et de désérialisation. Un cas d'utilisation courant consiste à exclure les champs de la sérialisation à moins qu'ils ne soient annotés avec une annotation spécifique, telle que @JsonProperty.

Problème :

Lors de la configuration de l'ObjectMapper pour sérialisez uniquement les champs annotés avec @JsonProperty, la classe NumbersOfNewEvents contient toujours tous les attributs dans le fichier sérialisé. JSON.

Réponse :

La clé pour comprendre ce problème est que le CompanyObjectMapper personnalisé défini dans servlet.xml n'est pas utilisé par Spring. La solution consiste à annoter le bean CompanyObjectMapper avec @Configuration et à le définir comme méthode du bean dans une classe de configuration Spring. Cela garantira que l'ObjectMapper personnalisé est récupéré et utilisé par Spring.

Voici un exemple de la façon d'y parvenir avec Spring Boot :

@Configuration
public class JacksonConfiguration {

    @Bean
    public ObjectMapper objectMapper() {
        return new CompanyObjectMapper();
    }
}
Copier après la connexion

Cette configuration remplace le bean ObjectMapper par défaut et garantit que le CompanyObjectMapper personnalisé est utilisé pour la sérialisation et la désérialisation.

Remarque : Le VisibilityChecker défini dans la classe CompanyObjectMapper n'a aucun effet sur la sérialisation à l'aide de Jackson 2.4.6. Pour exclure des champs de la sérialisation, utilisez plutôt l'annotation @JsonIgnore.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal