


Wie gehe ich mit unterschiedlichen Eigenschaftsnamen für die JSON-Serialisierung und -Deserialisierung in Jackson um?
Umgang mit Eigenschaftsnamensunterschieden für die JSON-Serialisierung und Deserialisierung
In Jackson ist es möglich, während der Serialisierung und Deserialisierung unterschiedliche Namen für eine Eigenschaft zu haben. Betrachten wir ein Beispiel mit der folgenden Koordinatenklasse:
<code class="java">class Coordinates { int red; }</code>
Wir wollen das folgende JSON-Format für die Deserialisierung:
<code class="json">{ "red": 12 }</code>
Für die Serialisierung benötigen wir jedoch das folgende Format:
<code class="json">{ "r": 12 }</code>
Lösung:
Die Lösung besteht darin, die Annotation @JsonProperty sowohl für die Getter- als auch für die Setter-Methode zu verwenden und sicherzustellen, dass sie unterschiedliche Namen haben:
<code class="java">class Coordinates { int red; @JsonProperty("r") public byte getRed() { return red; } @JsonProperty("red") public void setRed(byte red) { this.red = red; } }</code>
Beachten Sie, dass die Methodennamen unterschiedlich sein müssen. Jackson interpretiert sie als Verweise auf unterschiedliche Eigenschaften und nicht auf dieselbe Eigenschaft mit unterschiedlichen Namen.
Zusätzliche Hinweise:
- Für die Klassenattribute ist es ratsam Verwenden Sie den entsprechenden Datentyp (in diesem Fall Byte), um den potenziellen Werten in der JSON-Nutzlast zu entsprechen.
- Der für die Serialisierung und Deserialisierung verwendete ObjectMapper kann bei Bedarf angepasst werden, um zusätzliche Einstellungen zu konfigurieren.
Testcode:
<code class="java">Coordinates c = new Coordinates(); c.setRed((byte) 5); ObjectMapper mapper = new ObjectMapper(); System.out.println("Serialization: " + mapper.writeValueAsString(c)); Coordinates r = mapper.readValue("{\"red\":25}",Coordinates.class); System.out.println("Deserialization: " + r.getR());</code>
Ausgabe:
Serialization: {"r":5} Deserialization: 25
Das obige ist der detaillierte Inhalt vonWie gehe ich mit unterschiedlichen Eigenschaftsnamen für die JSON-Serialisierung und -Deserialisierung in Jackson um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.
