Maison > Java > javaDidacticiel > le corps du texte

Comment puis-je configurer Jackson pour qu'il utilise uniquement les champs pour la sérialisation et la désérialisation à l'échelle mondiale ?

Barbara Streisand
Libérer: 2024-11-24 05:56:10
original
128 Les gens l'ont consulté

How Can I Configure Jackson to Use Only Fields for Serialization and Deserialization Globally?

Configurer Jackson pour utiliser uniquement les champs : une approche globale

Le comportement par défaut de Jackson implique l'utilisation à la fois de propriétés (getters/setters) et de champs pour la sérialisation. et la désérialisation. Cependant, vous souhaiterez peut-être utiliser les champs exclusivement comme source de configuration de sérialisation.

Annotation de classe individuelle

Vous pouvez appliquer l'annotation suivante à chaque classe individuelle pour y parvenir. :

@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
Copier après la connexion

Cependant, cette méthode nécessite des annotations répétitives sur chaque classe, qui peuvent être fastidieux.

Configuration globale

Pour configurer ce comportement globalement, modifiez les ObjectMappers individuels comme suit :

ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker()
                .withFieldVisibility(JsonAutoDetect.Visibility.ANY)
                .withGetterVisibility(JsonAutoDetect.Visibility.NONE)
                .withSetterVisibility(JsonAutoDetect.Visibility.NONE)
                .withCreatorVisibility(JsonAutoDetect.Visibility.NONE));
Copier après la connexion

Accès global via Wrapper Classe

Pour un accès global au mappeur configuré, pensez à implémenter un wrapper class :

Enveloppez le mappeur dans une classe/fonction pour l'exposer globalement si nécessaire :

public class JsonMapperWrapper {
    private static final ObjectMapper mapper = <configure ObjectMapper as above>;

    public static ObjectMapper getMapper() {
        return mapper;
    }
}
Copier après la connexion

Avec cette approche, vous pouvez accéder au mappeur configuré via JsonMapperWrapper.getMapper().

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