前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浏览器响应数据long型超长自动转换精度丢失

浏览器响应数据long型超长自动转换精度丢失

原创
作者头像
sdcuike
修改2020-01-19 10:25:53
2K0
修改2020-01-19 10:25:53
举报
文章被收录于专栏:sdcuike专栏sdcuike专栏

最近在洗敏感数据id,用类似snowflake算法加入分表基因生成新的ID,返回给前端,前端整数显示不正常。

java中long的最大值:9223372036854775807

看看在浏览器中的显示:

Google Chrome

版本 79.0.3945.117(正式版本) (64 位)

?

后面好几位不一样了,看看JavaScript中整数的最大值:

看来JavaScript的整数要比java的小。

?

如何解决:

前端可以做,后端序列化生字符串就行;

?

比如spring boot应用统一解决:

?

/**

* @author sdcuike

* @DATE 2020/1/17

*/

@Configuration

public class Jackson2Customizer {

public static final String DATE_FORMAT = "yyyy-MM-dd";

public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";

@Bean

public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {

return jacksonObjectMapperBuilder -> {

//修复:前端js 精度问题

jacksonObjectMapperBuilder.serializerByType(Long.class, ToStringSerializer.instance);

jacksonObjectMapperBuilder.serializerByType(Long.TYPE, ToStringSerializer.instance);

jacksonObjectMapperBuilder.simpleDateFormat(DATE_TIME_FORMAT);

};

}

}

或者使用注解在属性上加:

@JsonSerialize(using = ToStringSerializer.class)

?

————————————————

版权声明:本文为CSDN博主「A_Beaver」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/doctor_who2004/article/details/104026152

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com