Heim > Java > javaLernprogramm > Wie kann ich @JsonIgnore selektiv nur für die Serialisierung in Jackson anwenden?

Wie kann ich @JsonIgnore selektiv nur für die Serialisierung in Jackson anwenden?

DDD
Freigeben: 2024-11-28 11:09:13
Original
924 Leute haben es durchsucht

How Can I Selectively Apply @JsonIgnore for Serialization Only in Jackson?

Selektive @JsonIgnore-Anwendung: Nur Serialisierung

Bei der Arbeit mit sensiblen Daten während der Serialisierung und Deserialisierung ist es oft wünschenswert, bestimmte Eigenschaften von der Übertragung auszuschließen. Die Annotation @JsonIgnore bietet diese Funktionalität, gilt jedoch standardmäßig sowohl für die Serialisierung als auch für die Deserialisierung. Für Szenarien, in denen Sie die Verschlüsselung nur für die Serialisierung unterdrücken müssen, können Sie dies wie folgt erreichen:

Versionsabhängige Lösung

Vor Jackson Version 1.9 konnten Sie @JsonIgnore auf Getter-Methoden beschränken Aktivieren Sie die Deserialisierung und deaktivieren Sie sie gleichzeitig für die Serialisierung. Dies bedeutete, nur den Getter mit @JsonIgnore zu annotieren.

Neuer Ansatz für Jackson 1.9

In späteren Jackson-Versionen bietet die @JsonProperty-Annotation zusätzliche Flexibilität. Um @JsonIgnore nur auf die Serialisierung anzuwenden:

  1. Fügen Sie @JsonIgnore wie zuvor zum Getter hinzu.
  2. Fügen Sie @JsonProperty mit einem expliziten Feldnamen zur Setter-Methode für die sensible Eigenschaft hinzu, um sicherzustellen Die Deserialisierung funktioniert wie erwartet.

Zugriff auf Eigenschaftsebene Kontrolle

Für Versionen mit Jacksons @JsonProperty.Access-Annotation haben Sie eine weitere Option:

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;
Nach dem Login kopieren

Dies ermöglicht die Serialisierung des Passworts, verhindert jedoch dessen Deserialisierung und sichert es effektiv. Weitere Einzelheiten finden Sie in der Jackson-Dokumentation.

Das obige ist der detaillierte Inhalt vonWie kann ich @JsonIgnore selektiv nur für die Serialisierung in Jackson anwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage