2016-08-26 2 views
0

Ich habe eine Anforderung, ein Dokument mit ~ 60 Feldern zu nehmen und es einem Kundenschema zuzuordnen. Unser Schema hat ein Feld, das ich als ein Array wie folgt:Jackson CustomSerializer für bestimmte Felder

"documents": [{ 
    "type": "Resume", 
    "url": "https://.s3.amazonaws.com/F58723BD-6148-E611-8110-000C29E6C08D.txt" 
    }, { 
    "type": "Reference", 
    "url": "https://.s3.amazonaws.com/F58723BD-6148-E611-8110-000C29E6C08D.txt" 
    }] 

ich verwandeln müssen, dass auf:

"document1": {"type":"Resume", "https://.s3.amazonaws.com/F58723BD-6148-E611-8110-000C29E6C08D.txt"} 
"document2": {"type":"Reference", "url":"https://.s3.amazonaws.com/F58723BD-6148-E611-8110-000C29E6C08D.txt"} 

ich cumstom Serializer habe angefangen, aber wirklich, möchte wirklich nicht Ich muss einen benutzerdefinierten Serializer für alle 60 Felder schreiben, um diese Transformation durchzuführen. Gibt es eine Möglichkeit, Jackson zu sagen, alle anderen Felder als normal zu serialisieren und meine Logik nur für diese eine Instanz zu verwenden?

Ich habe eine Reihe von Optionen ausprobiert und halte das immer so hilfreich Fehler bekommen:

com.fasterxml.jackson.core.JsonGenerationException: Can not write a field name, expecting a value 

Wenn ich könnte sogar bestimmen, was dies bedeutet, wäre es sehr hilfreich sein.

Vielen Dank im Voraus!

Antwort

0

tun Wenn Sie erstellen, von dem Eingang, eine Karte, wo die Werte eine Zeichenfolge mit rohen Json sind, können Sie den benutzerdefinierten Serializer von Steve Kuo

in Jackson @JsonRawValue for Map's value geschrieben verwenden
Verwandte Themen