序列化转换类,ZonedDateTime类型序列化时转换为Long类型

public class ZonedDateTimeToMillisecondSerializer extends JsonSerializer {

    @Override
    public void serialize(ZonedDateTime value,
                          JsonGenerator jsonGenerator,
                          SerializerProvider provider)
            throws IOException {

        jsonGenerator.writeNumber(value.toInstant().toEpochMilli());
    }
}

需要在实体类字段上加上注解@JsonSerialize(using= ZonedDateTimeToMillisecondSerializer.class)

public class TimeConvert implements Converter {
    @Override
    public Long convert(ZonedDateTime value) {
        long l = value.toInstant().toEpochMilli();
        return l;
    }

    @Override
    public JavaType getInputType(TypeFactory typeFactory) {
        return typeFactory.constructType(new TypeReference() {});
    }

    @Override
    public JavaType getOutputType(TypeFactory typeFactory) {
        return typeFactory.constructType(new TypeReference() {});
    }
}

需要在实体类字段上加上注解@JsonSerialize(converter= TimeConvert.class)

你可能感兴趣的:(Java,spring)