gpt4 book ai didi

json - 我应该如何在 Spring Message Converters Objectmapper 上设置功能?

转载 作者:行者123 更新时间:2023-12-04 18:09:56 32 4
gpt4 key购买 nike

我正在使用第 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 比较只是为了设置此属性。

执行此操作的更聪明/更好的方法是什么?

最佳答案

以下是您的选择:

  1. 实例化并配置 MappingJacksonHttpMessageConverter 然后将您的 resttemplate 的消息转换器设置为该实例。请参阅 RestTemplate.html#setMessageConverters(java.util.List)。请注意,这将删除所有在您实例化 RestTemplate 时自动实例化的默认消息转换器。
  2. 使用@JsonDeserialize。参见 http://dev.sghill.net/2012/04/how-do-i-write-jackson-json-serializer.html

关于json - 我应该如何在 Spring Message Converters Objectmapper 上设置功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16652830/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com