碰到业务需求返回的时间格式不一致,比如
返回要求时间戳

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
本文介绍如何使用自定义的Date2LongSerializer类将日期转换为时间戳,解决后端返回时间格式不一致的问题。同时,通过在传输对象中应用@JsonSerialize注解并配置全局属性@JsonInclude(Include.NON_NULL),有效避免了null值属性的返回。
649

被折叠的 条评论
为什么被折叠?



