Wie serialisieren, boolean, um JSON-strings mit Jackson
Haben wir ein REST-service mit Jersey JAX-RS und Jackson (version 2.1.5) für die JSON-Serialisierung.
Als Anwendung soll ein drop-in-Ersatz für die älteren legacy-Dienst fungiert als backend einen bestehenden mobile-app, müssen wir einige Anpassungen an der Art und Weise Jackson serialisiert Boolesche Werte.
Vorhandenen mobilen app erwartet, dass boolean-Werte werden ausgedrückt als strings "true" und "false" wie folgt:
{"Foo":"true","Bar":"false"}
Also suchte ich nach einer Möglichkeit, Einfluss auf die Jackson-Serialisierung, um die Ausgabe boolescher Werte, die als strings, aber ich habe keinen Erfolg.
Oh, und btw - da unsere Modell-Klassen erzeugt wurden, anhand von xml-schemas mit JAXB-Klasse-generation, wir können nicht kommentieren den Klassen mit json Anmerkungen.
Habe ich versucht zum registrieren eines Moduls mit ObjectMapper, bietet eine benutzerdefinierte serializer für boolean-Objekte, aber es schien nicht zu funktionieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jackson 2.16 Benutzerdefinierte Serializer für den primitiven Datentyp .
Sie sollten schreiben Sie Ihre eigenen serializer. Beispiel-code für Datentyp boolean
//erstellen Sie ein Modul mit einem benutzerdefinierten booleschen serializer
}
//register benutzerdefinierte BooleanSerializer Klasse ObjectMapper.
//Hier konfigurieren wir die Objekt-mapper
Okay, es scheint, dass entweder meine IDE-oder Maven tätig war, und weigerte sich, zu bauen, oder einen Verweis auf die änderungen, die ich in meinem
ObjectMapper
Konfiguration.Zum Wohle der künftigen Besucher, hier ist der Kern der Lösung des Problems der macht Jackson Datenbindung ausspucken boolean-Werte als Zeichenfolgen:
In meinen maßgeschneiderten ObjectMapper context-resolver, die ich nur hatte, um spezielle serializer für boolean-Objekt-Typen:
Das ist es. Wenn Sie wissen, wie Sie Ihr ObjectMapper, dann sollte dies genug, um Sie gehen.