如何解决Feign客户端无法将地图中的日期序列化为字符串
我使用Feign Client,并且请求正文中的数据类型为Map<String,Object>
。映射的值可以是任何类型。但是,如果类型是日期(通常我使用ZonedDateTime
),则希望将该值序列化为字符串。 (例如“ 2015-06-28T03:39:43.176Z”)。我在配置中设置了自定义Decoder
class Configuration {
@Bean
public Decoder feignDecoder() {
ObjectMapper objectMapper = new ObjectMapper()
.findAndRegisterModules()
.registerModule(new JavaTimeModule())
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false)
.configure(SerializationFeature.WRITE_DATES_WITH_ZONE_ID,true)
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.setDateFormat(new StdDateFormat().withColonInTimeZone(true))
.enable(SerializationFeature.WRITE_DATES_WITH_ZONE_ID);
HttpMessageConverter<?> jacksonConverter = new MappingJackson2HttpMessageConverter(objectMapper);
ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(jacksonConverter);
return new ResponseEntityDecoder(new SpringDecoder(objectFactory));
}
}
当然,我已经将伪装客户端设置为使用该配置
@ReactiveFeignClient(
name = "myClient",url = "${base-url}",configuration = Configuration.class
)
但是日期仍然序列化为Long(秒)。如何使日期序列化为字符串?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。