Configuration d'ObjectMapper au printemps : restreindre la sérialisation des champs
Pour configurer l'ObjectMapper pour sérialiser uniquement les champs annotés avec @JsonProperty, envisagez l'approche suivante :
1. Créez un ObjectMapper personnalisé
public class CustomObjectMapper extends ObjectMapper { public CustomObjectMapper() { super(); setVisibility(Visibility.NONE).enable(Visibility.NON_EMPTY); } }
Cet ObjectMapper personnalisé désactive la sérialisation des champs non annotés et inclut uniquement les champs dont la valeur est non nulle.
2. Enregistrez l'ObjectMapper personnalisé au printemps
Dans votre servlet.xml, enregistrez l'ObjectMapper personnalisé comme suit :
<bean>
3. Mettre à jour la configuration basée sur les annotations
Assurez-vous que votre classe @Configuration enregistre le CountingJacksonHttpMessageConverter personnalisé :
@Configuration public class JacksonConfiguration { @Bean public MappingJacksonHttpMessageConverter jsonConverter() { MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter(); converter.setObjectMapper(jacksonObjectMapper()); return converter; } }
4. Assurez-vous d'une dépendance de version appropriée
Vérifiez que vous utilisez une version compatible de Jackson. Dans ce cas, Jackson 2.x est recommandé pour une utilisation avec Spring.
5. Vérifiez l'exclusion des annotations Jackson par défaut
Assurez-vous que les annotations Jackson par défaut sont exclues de la détection de visibilité en remplaçant la méthode setVisibility dans votre ObjectMapper personnalisé.
Considérations supplémentaires :
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!