JsonIgnore-Annotation für kontrollierte Serialisierung und Deserialisierung
Beim Umgang mit sensiblen Daten in Benutzerobjekten ist es wichtig, deren Offenlegung während der Serialisierung zu verhindern. Die Annotation @JsonIgnore dient diesem Zweck, kann jedoch versehentlich die Deserialisierung blockieren.
Deserialisierungsproblem mit @JsonIgnore
In diesem Szenario verhindert die Annotation @JsonIgnore für die Eigenschaft „Passwort“. seine Serialisierung an den Client. Es verhindert jedoch auch, dass die Eigenschaft mit dem richtigen Passwort deserialisiert wird, was Anmeldungen zu einer Herausforderung macht.
Lösung für selektive Ignoranz
Je nach Jackson-Version gibt es zwei Ansätze verwendet werden:
Jackson-Versionen vor 1.9:
Jackson-Versionen 1.9 und oben:
Beispielcode:
In Java:
@JsonIgnore(serialize = true, deserialize = false) private String password; @JsonProperty("password") private void setPassword(String password) { this.password = password; }
Dieser Ansatz ermöglicht @JsonIgnore darf nur während der Serialisierung angewendet werden, um eine korrekte Deserialisierung des Kennworts zu ermöglichen und es gleichzeitig vor unbeabsichtigter Offenlegung zu schützen.
Das obige ist der detaillierte Inhalt vonWie kann ich @JsonIgnore verwenden, um die Serialisierung zu steuern, ohne die Deserialisierung zu blockieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!