Configurer Jackson pour utiliser uniquement des champs : une solution complète
Lors de la sérialisation et de la désérialisation d'objets en JSON, Jackson utilise par défaut les deux getters/setters (propriétés) et champs. Cependant, vous préférerez parfois vous fier uniquement aux champs pour ce processus. Voici comment y parvenir :
Au niveau d'une classe individuelle, vous pouvez contrôler le comportement à l'aide de l'annotation @JsonAutoDetect, comme mentionné dans la question. Pour une configuration globale, vous pouvez personnaliser l'ObjectMapper 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) );
Si vous avez besoin d'un accès global à un mappeur configuré, envisagez d'utiliser une classe wrapper pour une approche centralisée de la configuration.
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!