Annotation JsonIgnore pour une sérialisation et une désérialisation contrôlées
Lorsque vous traitez des données sensibles dans des objets utilisateur, il est essentiel d'empêcher leur exposition pendant la sérialisation. L'annotation @JsonIgnore sert à cet effet, mais peut bloquer par inadvertance la désérialisation.
Problème de désérialisation avec @JsonIgnore
Dans ce scénario, l'annotation @JsonIgnore sur la propriété password empêche sa sérialisation au client. Cependant, cela empêche également la désérialisation de la propriété avec le mot de passe correct, ce qui rend les inscriptions difficiles.
Solution pour l'ignorance sélective
Selon la version de Jackson, deux approches peuvent être utilisé :
Versions Jackson antérieures à 1.9 :
Jackson versions 1.9 et ci-dessus :
Exemple de code :
En Java :
@JsonIgnore(serialize = true, deserialize = false) private String password; @JsonProperty("password") private void setPassword(String password) { this.password = password; }
Cette approche permet @JsonIgnore à appliquer uniquement lors de la sérialisation, permettant au mot de passe d'être correctement désérialisé tout en le protégeant d'une exposition involontaire.
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!