一、背景
今天在开发的过程中发现,后端有个Long类型的id,返回到前端,数值发生了变化,调查后发现是因为超过了前端能接收的最大数值,从而导致精度丢失。
二、解决方案
后来分析后决定,把Long转成String类型给到前台,方案就是在实体类id字段上增加注解,因为系统使用的是jackson,所以加上@JsonFormat(shape = JsonFormat.Shape.STRING)就可以了。
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
如果使用的是fastjson,加上@JSONField(serializeUsing = ToStringSerializer.class)注解也可以解决。