当前位置:   article > 正文

springboot2.x 解决Long类型的ID 精度丢失问题_spring 长整型 失真

spring 长整型 失真

一、Java 后端处理

JavaScript 无法处理 Java 的长整型 Long 导致精度丢失,具体表现为主键最后两位永远为 0,解决思路: Long 转为 String 返回

方式1 : 通过注解方式

  1. @Data
  2. @EqualsAndHashCode(callSuper = false)
  3. @Accessors(chain = true)
  4. public class SysRoles implements Serializable {
  5. // 注解处理
  6. @JsonSerialize(using=ToStringSerializer.class)
  7. private Long id;
  8. }

 

方式2: 全局设置 ,改写配置放在容器中。

  1. @Bean
  2. public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
  3. ObjectMapper objectMapper = builder.createXmlMapper(false).build();
  4. objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
  5. SimpleModule module = new SimpleModule();
  6. module.addSerializer(Long.class, ToStringSerializer.instance);
  7. module.addSerializer(Long.TYPE, ToStringSerializer.instance);
  8. objectMapper.registerModule(module);
  9. return objectMapper;
  10. }

 

二、前端JS处理

  • 安装 json-bigint 插件
AppledeMacBook-Pro:~ apple$ npm install json-bigint
  • 对请求进行拦截处理, 这里以axiso为例
  1. import axios from 'axios'
  2. import store from '@/store'
  3. import JSONbig from 'json-bigint'
  4. const service = axios.create({
  5. baseURL: process.env.VUE_APP_BASE_API,
  6. timeout: 30 * 1000,
  7. // 在自动解析 JSON 数据之前的 data,处理 Long 类型精度丢失问题
  8. transformResponse: [function(data) {
  9. return JSONbig.parse(data)
  10. }]
  11. })

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/357004
推荐阅读
相关标签
  

闽ICP备14008679号