Selektive Anwendung von @JsonIgnore: Adressierung des reinen Serialisierungsausschlusses
Während des Datenaustauschs mit einem Server kann ein Benutzerobjekt vertrauliche Informationen enthalten, die sollte während der Serialisierung vor Clients verborgen bleiben. Ein häufig verwendeter Ansatz ist die Anwendung der Annotation @JsonIgnore, um sensible Eigenschaften zu verbergen. Dies kann jedoch auch die Deserialisierung beeinträchtigen und in bestimmten Szenarien zu Herausforderungen führen.
Verstehen des Problems
Die Annotation @JsonIgnore für eine Eigenschaft verhindert deren Einbeziehung in die JSON-Serialisierung. Wenn jedoch dieselbe Eigenschaft während der Deserialisierung benötigt wird (z. B. um ein Benutzerkonto zu erstellen), wird der Ausschluss problematisch.
Selektiver Ausschluss mit @JsonIgnore
Zu lösen Für dieses Problem können je nach verwendeter Jackson-Version zwei unterschiedliche Ansätze gewählt werden:
Jackson-Versionen davor 1.9:
Jackson-Versionen 1.9 und später:
Beispiel:
Betrachten Sie ein Benutzerobjekt mit einem Passwortfeld:
@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; }
Hinweis:
Das obige ist der detaillierte Inhalt vonWie kann ich Felder selektiv von der JSON-Serialisierung ausschließen, ohne die Deserialisierung zu beeinträchtigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!