热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JacksonSerializationFeature.WRITE_DATES_AS_TIMESTAMPS在春天没有关闭时间戳

如何解决《JacksonSerializationFeature.WRITE_DATES_AS_TIMESTAMPS在春天没有关闭时间戳》经验,为你挑选了1个好方法。

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

但是我无法让它发挥作用.我发现的所有帖子都说要禁用Jackson objet映射器的SerializationFeature.WRITE_DATES_AS_TIMESTAMPS功能.所以我写了下面的代码:

public class MVCConfig {

    @Autowired
    Jackson2ObjectMapperFactoryBean objectMapper;

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

据我所知,配置也是一个bean,所以在对象映射器中自动连接以设置其他属性应该可行.我使用了断点,这个设置看起来一切都很好.

但是当我在对http查询的响应中使用java.util.Date属性序列化bean时,我仍然得到一个时间戳.

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



1> drekka..:

经过大量的搞乱后,我发现以下代码修复了这个问题:

public class MVCConfig extends WebMvcConfigurerAdapter {
    @Override
    public void extendMessageConverters(List> 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消息转换器并进行配置.但这对我有用.


对我来说,在属性文件中添加`spring.jackson.serialization.write-dates-as-timestamps = false`就足够了。
推荐阅读
author-avatar
蓶逺訫動_129
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有