前言
SpringBoot默认使用Jackson进行json数据的序列化,在这个过程中总会有些奇奇怪怪的需求,对于这些小需求要么增加一堆配置类,要么重写方法,其实都有点杀鸡用牛刀了,那么我来列举下日常开发中这些小需求如何通过配置的形式解决。
日期格式类
全局配置日期格式为 yyyy-MM-dd HH:mm:ss
spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8
以上只对Date类型的字段生效,如果是LocalDateTime类型,可以尝试以下局部配置
- 字段级别配置
public class MyClass {@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private LocalDateTime time;
}
- 类级别配置
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
public class MyClass {private LocalDateTime time;
}
Long型字段序列化成字符串
Java的Long字段在Javascript中会精度丢失,所以序列化时要将该字段序列化成String
- 字段级别配置
public class MyClass {@JsonFormat(shape = JsonFormat.Shape.STRING)private Long lng;
}
- 类级别配置 (会将所有的字段都以字符串形式展示)
@JsonFormat(shape = JsonFormat.Shape.STRING)
public class MyClass {private Long lng;
}