Ho un progetto che utilizza Spring MVC per creare e gestire più endpoint REST. Attualmente sto lavorando sull'utilizzo di Jackson per gestire automaticamente la serializzazione/deserializzazione di JSON utilizzando le annotazioni @RequestBody
e @ResponseBody
.Come posso abilitare la custodia Pascal per impostazione predefinita quando si utilizza Jackson JSON in Spring MVC?
Ho lavorato a Jackson, quindi ho un punto di partenza. Il mio problema è che la nostra vecchia serializzazione è stata eseguita manualmente e ha utilizzato la custodia Pascal al posto della custodia Camel ("MyVariable" invece di "myVariable"), e Jackson ha la custodia Camel per impostazione predefinita.
So che posso modificare manualmente il nome di una variabile utilizzando @JsonProperty
. Detto questo, non considero l'aggiunta di @JsonProperty
a tutte le mie variabili per essere una valida soluzione a lungo termine.
C'è un modo per far sì che Jackson usi la custodia Pascal durante la serializzazione e la deserializzazione oltre all'uso dell'annotazione @JsonProperty
?
MODIFICA: Sembra che non ci sia un modo pulito per farlo esternamente. Un paio di persone hanno suggerito di scavalcare classi diverse come un modo per raggiungere il mio obiettivo. Sono aperto a suggerimenti su ciò che posso ignorare che cambierà l'involucro. Al momento ho creato un ObjectMapper personalizzato che imposta alcune proprietà che desidero (ovvero Inclusion.NON_NULL
). Non ho ancora trovato nessun posto che mi permettesse di cambiare il comportamento del rivestimento. qualche idea?
Io non la penso così, Jackson sarà sempre utilizzerà il nome java in stile – skaffman
a braccio, si può estendere la classe Jackson (i) e modificare la convenzione di denominazione in quel modo? – DwB
È possibile eseguire l'override di alcuni pezzi (AnnotationIntrospector, BeanSerializerFactory) per farlo.Ma non esiste ancora un modo esteriore pulito per aggiungere strategie di denominazione (che è stata richiesta da più utenti) – StaxMan