Я использую сторонний REST API, который возвращает «NaN» в своем ответе JSON :( Я не могу изменить ответ.
Я использую Spring MVC с RestTemplate и встроенными преобразователями сообщений для десериализации JSON в объект.
Мне было интересно, есть ли разумный способ установить свойство JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS
, чтобы разрешить NaN в ответе.
Поскольку у меня есть другие преобразователи сообщений, которые мне не нужно настраивать самостоятельно, я сейчас делаю следующее:
List<HttpMessageConverter<?>> converters = restTemplate.getMessageConverters();
for (HttpMessageConverter converter : converters) {
if (converter instanceof MappingJacksonHttpMessageConverter) {
ObjectMapper objectMapper = ((MappingJacksonHttpMessageConverter) converter).getObjectMapper();
objectMapper.configure(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS, true);
}
}
Это работает, но мне не нравится тот факт, что я а) повторяю и б) выполняю сравнение instanceof только для установки этого свойства.
Что было бы более умным/приятным способом сделать это?