Maison >Java >javaDidacticiel >Comment puis-je ignorer sélectivement les champs lors de la sérialisation JSON tout en autorisant la désérialisation ?
@JsonIgnore sélectif pour la sérialisation
Lors de l'utilisation de frameworks de sérialisation/désérialisation JSON, il peut être utile d'ignorer de manière sélective certains champs pour des opérations spécifiques. Dans le cas des mots de passe, il est souvent souhaitable de les exclure de la sortie sérialisée tout en permettant leur désérialisation.
Contexte fourni
L'objet utilisateur en cours de sérialisation et désérialisé a une propriété "mot de passe". @JsonIgnore a été appliqué à cette propriété pour l'empêcher d'être incluse dans les réponses JSON sérialisées. Cependant, cela bloque également la désérialisation d'un mot de passe, rendant l'inscription de l'utilisateur impossible.
Solution
Spring JSONView, qui utilise Jackson en interne, fournit diverses méthodes pour contrôler la sérialisation/ désérialisation. Pour ce scénario spécifique, deux approches sont recommandées :
Jackson Versions < 1.9
Jackson Versions >= 1.9
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private String password;
Notes supplémentaires
Cette solution cible spécifiquement l'exclusion sélective pour la sérialisation tout en autorisant la désérialisation. Pour d'autres scénarios où le masquage de désérialisation est souhaité, des approches alternatives peuvent être nécessaires.
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!