自定义序列化转换类
实际开发中,我们一定遇到过这样的问题:前端显示和后台存储数据单位不统一,而且各有各自的理由,统一不了,那就转换吧。每次返回给前端时再转换一遍,返回给前端的json数据,在后端里定义的往往是一个对象,如何做到优雅的转换呢?
package com.example.meal.utils.serializer;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.util.Date;
public class Date2LongSerializer extends JsonSerializer<Date> {
@Override
public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
jsonGenerator.writeNumber(date.getTime() / 1000);
}
}
//使用
@JsonSerialize(using = Date2LongSerializer.class)
private Date crateTime;
去掉为空的key值对象
在后台接口返回数据的时候,为了满足restful 的规范,如果数据对象为null就不序列化该字段
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private String userName;
这样就如果是null的对象,key也会消失








网友评论