@JsonSerialize的使用

@JsonSerialize注解,可以实现date数据转换成long型数据等功能,该注解作用在属性的getter()方法上

用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。因为在java中日期时期的时间戳是ms,我现在需要将ms转换为s,就需要将ms/1000


package com.whf.utils.serializer;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.util.Date;

import java.io.IOException;

/**
 *该类可以将data转换成long类型
 */
public class Data2LongSerizlizer extends JsonSerializer<Date> {


    @Override
    public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        //将毫秒值转换成秒变成long型数据返回
        jsonGenerator.writeNumber(date.getTime()/1000);
    }


//创建时间
@JsonSerialize(using = Data2LongSerizlizer.class )
private Date createTime;
//更新时间
@JsonSerialize(using = Data2LongSerizlizer.class )
private Date updateTime;

这样就完成了时间戳13位到10位的转换

你可能感兴趣的:(@JsonSerialize的使用)