Jackson json zum Zuordnen und camelcase Schlüsselname

8

Ich möchte json über die jackson-Bibliothek in eine Karte konvertieren, die den camelCase-Schlüssel enthält ... sagen wir ...

von

%Vor%

dazu ...

%Vor%

Mein Code ...

%Vor%

Aber das funktioniert nicht ... sogar andere propertyNamingStrategy funktioniert nicht auf json ... wie ...

%Vor%

bis

%Vor%

Wie bekomme ich den Namen der camelCase Map-Taste per jackson ... oder sollte ich den Map-Schlüssel manuell umwandeln und es auch anders machen ???

Vielen Dank im Voraus ...

    
Shakil 09.06.2015, 08:57
quelle

2 Antworten

6

Da Sie mit Maps / Dictionaries arbeiten, anstatt die JSON-Daten an POJOs zu binden (explizite Java-Klassen, die mit den JSON-Daten übereinstimmen), gilt die Eigenschaftsbenennungsstrategie nicht:

  

Class PropertyNamingStrategy ... definiert die Namen von JSON-Eigenschaften   ("externe Namen") werden von den Namen der POJO-Methoden und -Felder abgeleitet   ("interne Namen")

Daher müssen Sie zuerst die Daten mit Jackson analysieren und dann über das Ergebnis iterieren und die Schlüssel konvertieren.

Ändern Sie Ihren Code wie folgt:

%Vor%

Und füge diese Methoden hinzu:

%Vor%     
Codo 09.09.2016 13:52
quelle
3

Sie können immer über die Schlüssel der Karte iterieren und sie aktualisieren. Wenn Sie jedoch nur an der Erstellung eines JSON mit Kamelfallschlüsseln interessiert sind, könnten Sie den unten beschriebenen Ansatz in Betracht ziehen.

Sie könnten einen benutzerdefinierten Schlüssel-Serializer haben. Es wird verwendet, wenn eine Map -Instanz zu JSON serialisiert wird:

%Vor%

Gehen Sie dann wie folgt vor:

%Vor%

Die Ausgabe ist:

%Vor%

Bei diesem Ansatz sind die Schlüssel von Map nicht in Camel. Aber es wird Ihnen die gewünschte Ausgabe geben.

    
Cassio Mazzochi Molin 09.09.2016 18:45
quelle

Tags und Links