注記を使用してdateタイプのデータをフォーマットする

1869 ワード

シーン:エンティティークラスのタイプはdateタイプで、何も処理せずにフロントエンドに戻るのはタイムスタンプですが、後ろに3つの0があります.フロントエンドは秒単位で、転送されたのはミリ秒レベルなので、処理する必要があります.@JsonSerialize注記で定義するツールクラスが必要です
package com.imooc.untis.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;

/**
 * Created by         
 * on 2018/3/3 22:01.
 */
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 createTime;

    /**     . */
    @JsonSerialize(using = Date2LongSerializer.class)
    private Date updateTime;