1.原因
参考文章 https://blog.csdn.net/u010028869/article/details/86563382
js使用双精度存储方式,因此对超长的整数值会丢失精度。
2.解决方法
首先,最最最重要的是明确后台json格式属于哪一种,要不然会做不少无用功。
网上不少解决方案使用的是
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
但亲测无效,后来想起来后台使用的是com.alibaba.fastjson.JSONObject,所以使用下面注解
@JSONField(serializeUsing = ToStringSerializer.class)
private Long id;
成功。