Указание поля Политика именования для Джексона

У меня есть вопрос, связанный с сериализацией / десериализацией bean-компонентов для json с использованием Джексона.Раньше я использовал GSON для этого, но теперь я столкнулся с проектом, который уже зависит от Джексона, и я бы предпочел не вводить новую зависимость, если я могу делать то, что у меня уже есть под рукой.

Итак, представьте, что у меня есть bean-компонент вроде:

class ExampleBean {
   private String firstField;
   private String secondField;
   // respective getters and setters
}

А затем Джексон сериализует его в:

{
   "firstField": "<first_field_value>",
   "secondField": "<second_field_value>"
}

Я использую следующий код для получения указанного выше результата:

ExampleBean bean;
...
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(outStream, bean);

Однако я бы хотел (как ожидается) получить следующая сериализация:

{
   "first_field": "<first_field_value>",
   "second_field": "<second_field_value>"
}

Я намеренно упростил свой пример, но у меня есть большая иерархия bean-компонентов, которые я хочу сериализовать, и я хочу указать, что сериализованные атрибуты всегда должны быть в snake_style (то есть с подчеркиванием) и соответствующими полями bean-компонентов всегда должен быть в верблюжьем корпусе. Можно ли каким-либо образом применить такие политики именования полей / атрибутов и использовать их без аннотирования соответствующего атрибута для каждого поля?

8
задан Boris Strandjev 2 March 2012 в 12:23
поделиться