Ich habe ein Projekt, das Spring MVC verwendet, um mehrere REST-Endpunkte zu erstellen und zu verarbeiten. Ich arbeite derzeit daran, Jackson zu verwenden, um die Seralisierung/Deserialisierung von JSON mithilfe der @RequestBody
und @ResponseBody
Annotationen automatisch zu behandeln.Wie kann ich Pascal Gehäuse standardmäßig aktivieren, wenn Jackson JSON in Spring MVC verwendet wird?
Ich habe Jackson arbeiten, also habe ich einen Ausgangspunkt. Mein Problem ist, dass unsere alte Serialisierung manuell gemacht wurde und Pascal-Gehäuse anstelle von Camel-Gehäuse ("MyVariable" anstelle von "myVariable") verwendet wurde und Jackson standardmäßig Camel-Gehäuse verwendet.
Ich weiß, dass ich den Namen für eine Variable mit @JsonProperty
manuell ändern kann. Nichtsdestotrotz denke ich nicht, dass ich allen meinen Variablen @JsonProperty
hinzufügen werde, um eine brauchbare langfristige Lösung zu sein.
Gibt es eine Möglichkeit, Jackson Pascal Gehäuse beim Serialisieren und Deserialisieren anders als die Verwendung der @JsonProperty
Annotation zu machen?
EDIT: Es sieht so aus, als gäbe es keinen sauberen Weg, dies extern zu tun. Ein paar Leute haben vorgeschlagen, verschiedene Klassen zu überschreiben, um mein Ziel zu erreichen. Ich bin offen für Vorschläge, was ich außer Kraft setzen kann, um das Gehäuse zu ändern. Im Moment habe ich einen benutzerdefinierten ObjectMapper gemacht, der einige Eigenschaften setzt, die ich will (nämlich Inclusion.NON_NULL
). Ich habe noch keinen Ort gefunden, an dem ich das Gehäuseverhalten ändern könnte. Irgendwelche Gedanken?
Ich denke nicht, Jackson wird immer den Java-Namen verwenden – skaffman
Aus dem Stegreif, können Sie die Jackson-Klasse (n) erweitern und die Namenskonvention so ändern? – DwB
Sie können einige Teile überschreiben (AnnotationIntrospector, BeanSerializerFactory), um dies zu tun.Aber es gibt noch keine sauber externalisierte Möglichkeit, um Benennungsstrategien hinzuzufügen (die von mehreren Benutzern angefordert wurden). – StaxMan