前端和后端之间的数据传递至关重要。然而,当涉及到Long类型数据时,可能会出现精度丢失问题,这会影响数据的准确性。本文将为你介绍两种解决方案,帮助你确保Long类型数据在前端和后端之间的精确传递。
精度丢失测试
访问:http://localhost:8099/pages/students.html,查询所有数据,发现后台返回数据如下
复制id=1692936528247996400在sql控制台进行数据查询
这和我们在数据库查询到的id不一致:
没有查出数据原因
目前学生id为long类型,在转换json传递到前端以后精度丢失,所以查询详情的学生id也是丢失精度的id,不能查询数据。
1692936528247996417 19位 1692936528247996400
因为js数字类型最大长度为16位,而java的long类型的最大长度为19位。所以如果数据长度大于16位的话传输到前端就会丢失精度。
2.2 使用自定义序列化器和反序列化器
使用自定义JSON序列化器和反序列化器,以处理Long类型数据。这可以通过配置Jackson ObjectMapper来实现。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。