Mam projekt, który używa Spring MVC do tworzenia i obsługi wielu punktów końcowych REST. Obecnie pracuję nad wykorzystaniem Jacksona do automatycznej obsługi seralizacji/deserializacji JSON przy użyciu adnotacji @RequestBody
i @ResponseBody
.Jak mogę domyślnie włączyć obudowę Pascala podczas używania Jackson JSON w Spring MVC?
Dostałem pracę Jacksona, więc mam punkt wyjścia. Mój problem polega na tym, że nasza stara serializacja została wykonana ręcznie i wykorzystała obudowę Pascala zamiast obudowy Camel ("MyVariable" zamiast "myVariable"), a Jackson domyślnie obsługuje obudowę Camel.
Wiem, że mogę ręcznie zmienić nazwę zmiennej za pomocą @JsonProperty
. Biorąc to pod uwagę, nie uważam dodawania @JsonProperty
do wszystkich moich zmiennych za opłacalne długoterminowe rozwiązanie.
Czy istnieje sposób, aby Jackson używał obudowy Pascala podczas serializowania i deserializacji innej niż przy użyciu adnotacji @JsonProperty
?
EDYCJA: Wygląda na to, że nie ma na to sposobu na zewnątrz. Kilka osób zasugerowało pominięcie różnych klas jako sposobu na osiągnięcie mojego celu. Jestem otwarty na sugestie dotyczące tego, co mogę zmienić, co zmieni obudowę. W tej chwili stworzyłem niestandardową ObjectMapper, która ustawia pewne właściwości, które chcę (mianowicie Inclusion.NON_NULL
). Nie znalazłem jeszcze miejsca, które pozwoliłoby mi zmienić zachowanie obudowy. jakieś pomysły?
Nie sądzę, że Jackson będzie zawsze używał nazwy w stylu java. – skaffman
. Czy poza mankietem możesz rozszerzyć klasę Jackson'a i zmienić konwencję nazewnictwa w ten sposób? – DwB
Możesz zastąpić niektóre elementy (AnnotationIntrospector, BeanSerializerFactory), aby to zrobić.Ale nie ma jeszcze czystej, zewnętrznej metody dodawania strategii nazewnictwa (wymaganej przez wielu użytkowników) – StaxMan