Maison  >  Article  >  Java  >  Comment exclure dynamiquement des champs de la sérialisation JSON dans Spring MVC ?

Comment exclure dynamiquement des champs de la sérialisation JSON dans Spring MVC ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 04:37:02885parcourir

How to Dynamically Exclude Fields from JSON Serialization in Spring MVC?

Exclusion dynamique de champs de la sérialisation JSON dans Spring MVC

Dans les scénarios où des données sensibles ou non pertinentes doivent être exclues des réponses JSON, Spring MVC fournit un mécanisme flexible pour ignorer champs spécifiques pendant le processus de sérialisation.

Annotation @JsonIgnoreProperties

L'annotation @JsonIgnoreProperties vous permet d'exclure des champs spécifiques de la sérialisation dans JSON. Appliqué à un POJO, il prend une liste de noms de champs comme arguments, en omettant ces champs de la représentation JSON. Par exemple, si vous souhaitez exclure les champs CreateBy et UpdatedBy de l'objet User décrit dans la question :

@Entity
@Table(name = "user")
@JsonIgnoreProperties(ignoreUnknown = true, value = {"createdBy", "updatedBy"})
public class User {
    // Class variables and methods
}

Avec cette annotation, la réponse JSON n'inclura que les champs explicitement spécifiés dans le paramètre value, à savoir userId, userName et emailId.

Annotation @JsonIgnore

Une autre option consiste à utiliser l'annotation @JsonIgnore sur des champs individuels. Cette annotation indique que le champ doit être ignoré lors de la sérialisation et de la désérialisation. Ceci est utile lorsque la liste des champs exclus est dynamique et peut changer en fonction des conditions d'exécution. Par exemple, si vous souhaitez exclure dynamiquement le champ encryptéPwd :

@Entity
@Table(name = "user")
@JsonIgnoreProperties(ignoreUnknown = true)
public class User {
    // Other class variables and methods
    
    @JsonIgnore
    private String encryptedPwd;
}

En définissant @JsonIgnore sur le champ encryptéPwd, il sera exclu de la sérialisation JSON même s'il est inclus dans la méthode get du POJO.

Exemple Github

Une implémentation pratique de ces techniques peut être trouvée dans ce référentiel GitHub : https://github.com/spring-projects/spring-framework/tree/main/ spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcAnnotationConfigTests.

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!

Déclaration:
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