Maison > Java > javaDidacticiel > le corps du texte

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

Linda Hamilton
Libérer: 2024-10-26 04:37:02
original
900 Les gens l'ont consulté

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
}
Copier après la connexion

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;
}
Copier après la connexion

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!