Ändern Sie die Deserialisierung der Jackson aller Enums, ohne Anmerkungen zu verwendenJava

Java-Forum
Anonymous
 Ändern Sie die Deserialisierung der Jackson aller Enums, ohne Anmerkungen zu verwenden

Post by Anonymous »

Ich muss die Deserialisierung aller Java -Enum -Typen in Jackson auf der ObjectMapper -Ebene ändern, ohne Anmerkungen zu den einzelnen Annotationsklassen zu verwenden. Das Konfigurieren dieser für die Serialisierung ist einfach, aber es ist nicht sofort offensichtlich, wie ein benutzerdefinierter Enum -Deserializer installiert werden kann. Zum Beispiel für das Enum Beispiel {foo_bar, trinken_bar} enum würde der Wert foo_bar als Rab_oof serialisiert und zu exampleNum.foo_bar zurückgeführt. Ich habe bereits eine Methode umgekehrt (String) , um damit umzugehen.

Code: Select all

JsonMapper.builder().addModule(new SimpleModule()
.addSerializer(Enum.class, new JsonSerializer() {
@Override
public void serialize(Enum value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeString(reverseString(value.name());
}
})
.addKeySerializer(Enum.class, new JsonSerializer() {
@Override
public void serialize(Enum value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeFieldName(reverseString(value.name());
}
})

…
Dies gibt mir einige hässliche Warnungen vor Enum Rohtypen, aber ich bin sicher, ich kann einen Weg finden, sie zu umgehen oder zu deaktivieren. Es funktioniert jedoch einwandfrei.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post