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

被折叠的 条评论
为什么被折叠?



