问题背景
日常开发碰到的小问题,使用JSON.toJSONString的时候,需要转化的实体类里面有Date类型的日期,在转JSON之前,字段的数值是2024-01-12,但是转化完变成了1704988800000
解决方法
原来的代码
requestJson = JSON.toJSONString(tGrpTbPolicy, SerializerFeature.WriteMapNullValue);
修改后代码
JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
requestJson = JSON.toJSONString(tGrpTbPolicy, SerializerFeature.WriteMapNullValue ,SerializerFeature.WriteDateUseDateFormat);
总结
其实问题就是JSON转化过程中,把Date类型字段转为了它的fastTime值,fastTime就是数字串,这时候,就必须使用“JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd"”提前格式化JSON的默认日期数据类型,随后在toJSONString方法中使用“SerializerFeature.WriteDateUseDateFormat”序列化日期,两个配合使用,就可以解决问题。
如果你的Date字段不多,而且这个字段很多地方都要进行转,那我还是建议在实体类的Date类型段上添加@JSONField注解来解决这个问题,会比一处一处加这两行代码要快得多。
推荐阅读:
SQL索引结构、使用、优化-深入浅出
ArrayList(源码分析)—面试经典问题
SpringBoot-AOP深入浅出通俗易懂
最后我还整理汇总了⼀些 Java ⾯试相关的⾼质量 PDF 资料和免费Idea账号
公众号:Java小白,回复“⾯试” 和“idea破解”即可获取!