Mam pytanie związane z fasolą do szeregowania/deserializacji json za pomocą Jacksona. Wcześniej używałem GSON do tego, ale teraz mam do czynienia z projektem, który już zależy od Jacksona i wolałbym nie wprowadzać nowej zależności, jeśli mogę zrobić to, co już mam pod ręką.Określanie polityki nazewnictwa pól dla Jackson
więc wyobraź sobie mam fasoli jak:
class ExampleBean {
private String firstField;
private String secondField;
// respective getters and setters
}
A potem Jackson serializes go:
{
"firstField": "<first_field_value>",
"secondField": "<second_field_value>"
}
Używam następujący kod do produkcji powyższy wynik:
ExampleBean bean;
...
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(outStream, bean);
Jednak chciałbym (am expected) uzyskać następujące serializacji:
{
"first_field": "<first_field_value>",
"second_field": "<second_field_value>"
}
ja celowo uproszczone moim przykładem, ale mam wielką hierarchię ziaren, które chcę serializacji i chcę, aby określić, że szeregowej atrybuty powinny być zawsze w snake_style (czyli podkreślenia) i odpowiednich polach fasoli powinien zawsze być CamelCased. Czy istnieje sposób, w jaki mogę wymuszać takie zasady nazewnictwa pól/atrybutów i używać ich bez adnotowania odpowiedniego atrybutu dla każdego pola?
ObjectMapper nie ma takiej metody setPropertyNamingStrategy ... :( – stantonk
@stantonk był kiedyś, gdy pisałem swój komentarz, najwyraźniej był tam dla Jacksona 1.9, ale nie znajduję odpowiednika w najnowszym Jackson Jeśli to zrobisz, napisz tutaj odpowiedź, aby ludzie mogli się do niej odwołać: –
wymyśliłem to, miałem starszą wersję jacksona dołączoną przez przejściową zależność, a moje IDE zaimportowało niewłaściwą :-). – stantonk