fastjson处理日期类型数据的序列化

fastjson简介

fastjson是阿里巴巴的开源JSON解析库

fastjson序列化日期类型数据的问题

默认情况下,fastjson在序列化日期类型的数据时,会把对应值序列化为一个long类型的值,该long类型的值其实是表示1970年1月1日至今的毫秒数

  1. 如果上面经fastjson序列化后的数据由其它的JSON解析库来进行反序列化,有可能会报错,导致无法完成反序列化;
  2. 虽然上面经fastjson序列化后的数据由fastjson本身来进行反序列化不会报错,能完成反序列化,但是反序列化后相应日期的值仍然为一个long类型的值,无法还原为类似"2018-08-02 15:20:20"格式的日期;
  3. 综上,如果不修正这个问题,将导致相应报文数据不能在不同应用(系统)间进行传输。

解决问题

序列化时,将日期类型的数据统一按一个日期格式序列化为字符串,对接的应用(系统)可以毫无问题地将数据进行反序列化

  1. 方案一:调用fastjson提供的专用API处理

    import com.alibaba.fastjson.JSON;
    // 省略其它代码,resultMap为一个包含日期类型数据的bean
    JSON.toJSONStringWithDateFormat(resultMap, "yyyy-MM-dd HH:mm:ss");
    

    处理后,数据序列化为:

    更多的API参考fastjson(三)处理日期

  2. 方案二:使用fastjson提供的注解,在相应的bean属性上加上@JSONField注解处理,如下示例

参考资料

  1. fastjson(三)处理日期
  2. Fastjson 使用指南
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值