springmvcリターンタイムフォーマットデータシリアル化処理

プロジェクトでは、多くの場合、要求時間形式と応答時間形式で処理されるデータがあります。これは、便宜上の要約です。日付に加えて、他のタイプも独自のシリアル化ルールを拡張できます。

1.インストールと変更に戻る:JsonSerializer

カスタムの戻り時間の形式は、タイムスタンプLongまたは文字列です:yyyy-MM-dd HH:mm:ss

対応するエンティティクラスフィールドに注釈を付けます。 @JsonSerialize(using = DateJsonSerialize.class)


/**
 * 时间处理: 返回时间戳
 * <P> 字段上添加 @JsonSerialize(using = DateJsonSerialize.class) 注解  </P>
 * @author wangsong
 * @mail [email protected]
 * @date 2020/11/21 0021 14:19 
 * @version 1.0.0
 */
public class DateJsonSerialize extends JsonSerializer<Object> {
    
    

    @Override
    public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
    
    
        if (value != null) {
    
    
            // value 为时间时,返回时间戳,字段上添加 @JsonSerialize(using = DateJsonSerialize.class) 注解
            if (value.getClass().isAssignableFrom(Date.class)) {
    
    
//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                String format = sdf.format((Date) value);
//                gen.writeString(format);
                String time = ((Date) value).getTime() + "";
                gen.writeString(time);
            }
        }
    }
}

2つ目は、変換を受信します。

カスタム受信時間の形式は、タイムスタンプLongまたは文字列です。yyyy-MM-ddHH:mm:ssは、エンティティタイプに対応するデータに変換されます。

対応するエンティティクラスフィールドまたはsetメソッドにコメントを追加します。 @JsonDeserialize(using = DateJsonDeserialize.class)

public class DateJsonDeserialize extends JsonDeserializer<Date> {
    
    

    @Override
    public Date deserialize(JsonParser p, DeserializationContext ctx) throws IOException {
    
    
        String text = p.getText();
        if(StringUtils.isBlank(text)){
    
    
            return null;
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = null;
        try {
    
    
            date = sdf.parse(text);
        } catch (ParseException e) {
    
    
            e.printStackTrace();
        }
        return date;
    }
}

おすすめ

転載: blog.csdn.net/qq_41463655/article/details/110064335