JSON応答で「NaN」を返すサードパーティのREST APIを使用しています:(応答を変更できません。
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);
}
}
これは機能しますが、a) 繰り返し、b) このプロパティを設定するためだけに instanceof 比較を行っているという事実が気に入りません。
これを行うためのよりスマート/より良い方法は何でしょうか?