这个数字类型的数据在后台debug的时候,看到的是真真的,没毛病,但是,在浏览器的network里面,看请求的结果。到前端之后,就变啦。具体看图。

大师兄

然后,就因为这个精度缺失,导致一系列后续操作,不符合预期啦。

对于Long 类型的数据,如果我们在Controller层通过@ResponseBody将返回数据自动转换成json时,不做任何处理,而直接传给前端的话,在Long长度大于17位时会出现精度丢失的问题。

怎么处理呢?

0,有的说使用@JSONField(serializeUsing= ToStringSerializer.class)

关键是,我这个不是一个简单的那种对象,一个类似map的东西,也找不到属性去加注解。。。

1,简单的处理方式。

在后端把这个字段从long转成字符串。代码自己实现。就好啦。

2,说是可以自定义一个converter来实现。

不才,实验了,但是,没有成功。后续要是实验成功了,会将具体步骤放在此处。

这么干有弊端,你把所有的long都给转字符串,影响前端不?这个影响范围有点大啊,不可控。还是不要这么干了,我看有的老铁例子里面把long类型的直接转成时间了,那些没必要转成时间的long类型的数据,怎么处理呢?


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!