Long类型值过长导致丢失精度变00
前言
Github:https://github.com/HealerJean
类似于LocalDateTime的序列化和反序列化方式
1、修改序列化的方式
1.1、JsonLongSerializer
public class JsonLongSerializer extends JsonSerializer<Long> {
@Override
public void serialize(Long aLong,
JsonGenerator jsonGenerator,
SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeString(Long.toString(aLong));
}
}
1.2、使用注解
@JsonSerialize(using = JsonLongSerializer.class )
private Long voucherId = null;
2、配置参数
该方式会强制将所有数字全部转成字符串输出,这种方式的优点是使用方便,不需要调整代码;缺点是颗粒度太大,所有的数字都被转成字符串输出了,包括按照timestamp格式输出的时间也是如此。
spring.jackson.generator.write_numbers_as_strings=true