jfinal如何解决js解析long类型数据精度丢失的问题?

网上提供的2种办法,一是在后台先转成string类型,这种比较麻烦,也不是很好。第二中是在模型类的setter方法上面加上@JsonSerialize(using = ToStringSerializer.class),但是我现在使用的是record,怎么添加该注解呢

评论区

JFinal

2019-11-21 11:00

jfinal 源码中有一处对 fastjson 配置例子:
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/json/FastJson.java

源码如下:
SerializeConfig.getGlobalInstance().put(Record.class, new FastJsonRecordSerializer());

这个配置干预了 Record 的转换,你可以通过类似的办法,来想办法再干预一下

通过查看 fastjson 官方文档来找答案


此外,js 对 long 丢失精度的问题本质是前端问题,可以试着找找 js 这边的解决方案,在服务端去解决总觉得不完美,因为这本质不是服务端的事

程序员是真的雷

2019-11-21 16:58

@JFinal 好的,谢谢波哥

zzutligang

2020-09-14 18:08

@JFinal 我刚遇到这个问题,在前端是解决不了的,目前所有浏览器对number的支持都是到2的53次方减1,这么一个数。浏览器已经是解决不了。只能是后台解决。