JSON对象反序列化为Java对象的时候自定义Date类型的字符串格式

本文介绍如何配置FastJson反序列化JSON对象为Java对象的过程,重点解决日期格式转换问题,确保前端传来的字符串日期能正确转换为Java的Date类型。

场景:假设前端传递过来一个JSON对象为

{
    "money":"123.123",
    "date":"2017/12/12"
}

需要将该对象反序列化为Java对象,这个时候需要修改JSON对象反序列化为Java的规则,否则字符串类型的date转化为Java的Date对象时就会报错

处理如下:

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        super.configureMessageConverters(converters);
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setDateFormat("yyyy/MM/dd");
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        fastConverter.setFastJsonConfig(fastJsonConfig);
        converters.add(fastConverter);
    }
}

假设JavaBean如下

public class FormatModel {

    private double money;
    private Date date;

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }
}
这样在controller中使用如下注解可以转化成功如下

@RequestMapping(value = "h2")
    public @ResponseBody
    Object testHeaderContext(@RequestBody FormatModel formatModel) {
        System.out.println(formatModel.getDate());
        return "111";
    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值