Selektives @JsonIgnore für die Serialisierung
Bei der Verwendung von JSON-Serialisierungs-/Deserialisierungs-Frameworks kann es nützlich sein, bestimmte Felder für bestimmte Vorgänge selektiv zu ignorieren. Im Fall von Passwörtern ist es oft wünschenswert, sie von der serialisierten Ausgabe auszuschließen, aber dennoch ihre Deserialisierung zuzulassen.
Bereitgestellter Kontext
Das Benutzerobjekt, das serialisiert wird und deserialisiert hat eine „Passwort“-Eigenschaft. @JsonIgnore wurde auf diese Eigenschaft angewendet, um zu verhindern, dass sie in serialisierten JSON-Antworten enthalten ist. Dies blockiert jedoch auch die Deserialisierung eines Passworts, wodurch eine Benutzeranmeldung unmöglich wird.
Lösung
Spring JSONView, das Jackson intern verwendet, bietet verschiedene Methoden zur Steuerung der Serialisierung/ Deserialisierung. Für dieses spezielle Szenario werden zwei Ansätze empfohlen:
Jackson-Versionen < 1.9
Jackson Versions >= 1.9
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private String password;
Zusätzliche Hinweise
Diese Lösung zielt speziell auf den selektiven Ausschluss für die Serialisierung ab und ermöglicht gleichzeitig die Deserialisierung. Für andere Szenarien, in denen eine Deserialisierungsmaskierung gewünscht ist, sind möglicherweise alternative Ansätze erforderlich.
Das obige ist der detaillierte Inhalt vonWie kann ich Felder während der JSON-Serialisierung selektiv ignorieren und gleichzeitig die Deserialisierung zulassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!