我正在使用第 3 方 REST API,它在其 JSON 响应中返回“NaN”:( 我无法更改响应。
我正在使用带有 RestTemplate 的 Spring MVC 和内置的消息转换器将 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);
}
}
这可行,但我不喜欢我 a) 迭代和 b) 进行 instanceof 比较只是为了设置此属性的事实。
什么是更聪明/更好的方法来做到这一点?