Джексон Конвертер - веб-сервис смешанного верблюда и подчеркивания - могу ли я иметь стратегию именования нескольких - PullRequest
1 голос
/ 22 октября 2019

У меня есть класс:

class Person {

  String firstName;
  String lastName;

  // Getters and stuff
}

Мой JSON из веб-сервиса похож на '{"firstName": "Mike", "last_name": "Last"}'

Есть ли способ настроить Джексона на преобразование без аннотирования каждого поля его форматомс аннотацией JsonProperty? Это надуманный пример, но в моем «реальном» веб-сервисе есть множество полей.

Если я использую регистр по умолчанию, я получаю значение firstName и lastName null, а если я получаю SNAKE_CASE, получаю противоположное.

Могу ли я попробовать оба варианта?

Вот (kotlin) конфигурация для используемого маппера, в настоящее время last_name установлено, а firstName - нет:

@Bean
fun mappingJackson2HttpMessageConverter(): MappingJackson2HttpMessageConverter {
    val jsonConverter = MappingJackson2HttpMessageConverter()
    val objectMapper = Jackson2ObjectMapperBuilder()
            .modules(KotlinModule())
            .build<ObjectMapper>()
            .setVisibility(PropertyAccessor.SETTER, JsonAutoDetect.Visibility.ANY)
            .setVisibility(PropertyAccessor.CREATOR, JsonAutoDetect.Visibility.ANY)
            .setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)
            .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
    jsonConverter.objectMapper = objectMapper
    return jsonConverter
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...