问题
数据库数据:
前端得到的数据:
出现了Long类型的数据出现精度丢失问题!
原因
JS中Long最大值:9007199254740992
JAVA中Long最大值:9223372036854775807
雪花算法id外加数据范围的不同导致地前后端不匹配
解决方法
把Long类型转为String再传给前端;
这里用的方法是通过 Jackson 序列化的注解@JsonSerialize(using = ToStringSerializer.class)
,将 Java 对象序列化为 JSON 时,将某个字段强制转换为字符串类型输出。
这个注解常用于对某些数据类型(如 Long 或 BigInteger)进行处理,特别是在前端(如 JavaScript)可能无法正确处理大整数时,避免精度丢失的问题。