如果java返回给前端的字段有Long类型的,比如主键id,那么就要把这个Long类型转为String类型才可以,不然前端拿到这个字段再传回给你后端用的时候会导致精度缺失,也就是这个字段的值会改变,原因是java的Long类型是18位, js的Long类型是16位,所以会导致精度缺失
JavaScript 无法处理 Java 的长整型 Long, 从而导致精度丢失,具体表现为主键最后两位永远为 0,解决思路: Long 转为 String 返回就可以完美的解决了
原因:
java中得long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值).
解决办法:
使用ToStringSerializer的注解,让系统序列化时,保留相关精度