gpt4 book ai didi

json - Jackson SerializationFeature.WRITE_DATES_AS_TIMESTAMPS 在 Spring 没有关闭时间戳

转载 作者:IT老高 更新时间:2023-10-28 13:58:21 27 4
gpt4 key购买 nike

经过大量搜索,我找到了在我的@RestController 中转换为 JSON 响应时如何阻止 java.util.Date 字段被序列化为时间戳的方法。

但是我无法让它工作。我发现的所有帖子都说禁用了 Jackson 对象映射器的 SerializationFeature.WRITE_DATES_AS_TIMESTAMPS 功能。于是我写了如下代码:

public class MVCConfig {

@Autowired
Jackson2ObjectMapperFactoryBean objectMapper;

@PostConstruct
public void postConstruct() {
this.objectMapper.setFeaturesToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
}
}

据我了解,配置也是一个 bean,因此在对象映射器中自动连接以设置其他属性应该可以工作。我已经使用了断点,这个设置看起来一切都很好。

但是,当我序列化一个带有 java.util.Date 属性的 bean 以响应 http 查询时,我仍然得到一个时间戳。

有谁知道为什么这不起作用?这让我很难过!

最佳答案

经过一番折腾,我发现下面的代码解决了这个问题:

public class MVCConfig extends WebMvcConfigurerAdapter {
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
for (HttpMessageConverter<?> converter : converters) {
if (converter instanceof MappingJackson2HttpMessageConverter) {
MappingJackson2HttpMessageConverter jsonMessageConverter = (MappingJackson2HttpMessageConverter) converter;
ObjectMapper objectMapper = jsonMessageConverter.getObjectMapper();
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
break;
}
}
}
}

我不确定是否有更简单的方法来访问 Jackson MVC 消息转换器并对其进行配置。但这对我有用。

关于json - Jackson SerializationFeature.WRITE_DATES_AS_TIMESTAMPS 在 Spring 没有关闭时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27978762/

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