Application sélective de @JsonIgnore : résolution de l'exclusion de sérialisation uniquement
Lors de l'échange de données avec un serveur, un objet utilisateur peut contenir des informations sensibles qui doit être caché aux clients pendant la sérialisation. Une approche souvent utilisée consiste à appliquer l'annotation @JsonIgnore pour masquer les propriétés sensibles. Cependant, cela peut également interférer avec la désérialisation, créant des défis dans des scénarios spécifiques.
Comprendre le problème
L'annotation @JsonIgnore sur une propriété empêche son inclusion dans la sérialisation JSON. Cependant, si la même propriété est nécessaire lors de la désérialisation (par exemple pour créer un compte utilisateur), l'exclusion devient problématique.
Exclusion sélective avec @JsonIgnore
Pour résoudre ce problème, deux approches différentes peuvent être adoptées selon la version de Jackson utilisée :
Versions de Jackson antérieures à 1.9 :
Jackson versions 1.9 et plus tard :
Exemple :
Considérez un objet utilisateur avec un champ de mot de passe :
@JsonIgnore private String password; // Setter with READ_ONLY access (Jackson 1.9 and later) @JsonProperty(access = JsonProperty.Access.READ_ONLY) public void setPassword(String password) { this.password = password; }
Remarque :
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!