procesamiento de serialización de datos de formato de tiempo de retorno de springmvc

A menudo, los datos se procesan en el formato de tiempo de solicitud y el formato de tiempo de respuesta en el proyecto. Aquí hay un resumen para su conveniencia. Además de Fecha, otros tipos también pueden extender sus propias reglas de serialización.

1. Vuelva a instalar y cambiar: JsonSerializer

El formato de hora de retorno personalizado es una marca de tiempo Long o una cadena: aaaa-MM-dd HH: mm: ss

Anote el campo de clase de entidad correspondiente: @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);
            }
        }
    }
}

Dos, recibir conversión Deserializar

El formato de hora de recepción personalizado es una marca de tiempo Long o una cadena: aaaa-MM-dd HH: mm: ss se convierte a los datos correspondientes al tipo de entidad

Agregue un comentario en el campo de clase de entidad correspondiente o método de conjunto: @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;
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_41463655/article/details/110064335
Recomendado
Clasificación