spring5使用fastJson把java对象转换成json

本文介绍了Spring框架中内置的消息转换器如何将Java对象转换为JSON,特别是处理日期格式化的问题。默认情况下,日期会被转换为long型。通过在实体类中使用`@JsonFormat`注解并指定`pattern`和`timezone`,可以将日期转换为"yyyy-MM-dd HH:mm:ss"格式。同时,文章还提到了自定义消息转换器的配置方法,以实现特定的转换需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring内置的消息转换器

 

@ResponseBody可以把java对象转换成json

spring内置了很多消息转换器,当我们没有定义消息转换器时就会使用默认的消息转换器。

在直接返回json对象的时候,如果包含date类型的对象,默认转换成json的时候是转换成long型的格式,不是我们常用的"yyyy-MM-dd HH:mm:ss"格式。
这时候需要做一个转换,比较喜欢下面的方式,直接在实体类中注解:

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

其中JsonFormat为 com.fasterxml.jackson.annotation.JsonFormat;

不指定时区的话时间会出错

自定义消息转换器

在启动类上或者@Configuration的类中添加如下代码就可以了

    @Bean
    public HttpMessageConverters fastJsonHttpMessageConverters(){
        //1.需要定义一个convert转换消息的对象;
        FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
        //2:添加fastJson的配置信息;
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        //处理空值,让其转换为null
        fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue);
        //3处理中文乱码问题
        List<MediaType> fastMediaTypes = new ArrayList<>();
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
        //4.在convert中添加配置信息.
        fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
        fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
        HttpMessageConverter<?> converter = fastJsonHttpMessageConverter;
        return new HttpMessageConverters(converter);

    }

其中FastJson日期的处理要加上

@JSONField(format = "yyyy-MM-dd HH:mm:ss")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值