碰到业务需求返回的时间格式不一致,比如
返回要求时间戳
image.png
而我们后端返回的可能是 14901771219000 多了三个零 是因为后端数据精确到了毫秒
这时我们可以使用jsonSerializer类来实现转换
创建serializer包
定义一个Date2LongSerializer类 继承 jsonserializer<date> 这里要转换的类型是date
/**
*author huangh
*date 2018/8/17 15:12
*description 时间转换
*/
public class Date2LongSerializer extends JsonSerializer<Date> {
@Override
public void serialize(Date date, JsonGenerator jsonGenerator,
SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeNumber(date.getTime()/1000);
}
}
然后在传输对象中 把对应的时间属性加上注解
//使用我们定义的类来转换,参数就是被注解的属性
@JsonSerialize(using = Date2LongSerializer.class)
private Date createTime;
@JsonSerialize(using = Date2LongSerializer.class)
private Date updateTime;
在开发的时候 我们还会遇到 把一些null的不必要的属性也跟着反回给前端了
也可以在application文件中添加全局配置
/**
*author huangh
*date 2018/8/14 11:55
*description 创建订单传输对象
*/
@Data
//加入这个注解就可以把一些属性为null的排除掉
@JsonInclude(Include.NON_NULL)
public class OrderDto {
/**订单表*/
private String orderId;
private String buyerName;
private String buyerPhone;
private String buyerAddress;
#如果返回的属性值是null 则不返回null
jackson:
default-property-inclusion: non_null