Игнорировать случаи атрибутов JSON, объявленные с помощью @JsonProperty с помощью Spring RestTemplate - PullRequest
0 голосов
/ 11 марта 2019

Я использую @JsonProperty для сериализации данных из JSON в Spring RestTemplate exchange.

@JsonProperty("ip_address")
public String ipAddress;

@JsonProperty("port")
public Integer port;

Мне нужно это свойство для распознавания версий имен атрибутов как в верхнем, так и в нижнем регистре, т.е.«ip_address» и «IP_ADDRESS», установленные в @JsonProperty, должны быть распознаны.

Я пробовал следующее, но ничего не получалось:

У всех трех просто есть null значения для их соответствующих атрибутов, потому что я отключил ошибку для неизвестных атрибутов (иначе буквенный регистр) для шаблона.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Мне удалось заставить это работать без изменения моего исходного конфига класса pojo @JsonProperty.Используя пример Object Mapper и Rest Template, с которым вы связались, но вместо стратегии именования свойств используйте функцию отображения без учета регистра

ObjectMapper mapper = new ObjectMapper ();mapper.configure (MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);

0 голосов
/ 11 марта 2019

Вы можете сказать Джексону преобразовать все ваши имена собственности, например, в. SNAKE_CASE варианты и соответственно установите @JsonProperty:

Пример:

при загрузке весной установите свойство в application.properties

spring.jackson.property-naming-strategy=SNAKE_CASE

или вы можете включить его только для вашего отдельного класса и аннотировать класс с помощью:

@JsonNaming(PropertyNamingStrategy.SNAKE_CASE.class)

и затем установите @JsonProperty:

@JsonProperty(vale="ip_address")
...