【BUG】SpringBoot项目Long类型数据返回前端精度丢失问题

问题描述

后端再给前端返回数据,使用Long类型的时候存在精度丢失问题。

原因分析:

分布式项目中广泛使用雪花算法生成ID作为数据库表的主键,Long类型的雪花ID有19位,而前端接收Long类型用的是number类型,但是number类型的精度只有16位。这就导致雪花ID传到前端会出现精度丢失。


解决方案:

通过Jackson序列化转String

@Configuration
public class SerializerConfig {
   
    /**
     * Long类型前端精度丢失问题,序列化时转String
     * @param mapperBuilder
     * @return
     */
    @Bean
    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder mapperBuilder) {
   
        ObjectMapper build = mapperBuilder.createXmlMapper(false).build();
        build.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        SimpleModule module = new SimpleModule();
        module.addSerializer(Long.class, ToStringSerializer.instance);
        module.addSerializer(Long.TYPE, ToStringSerializer.instance);
        build.registerModule(module);
        return build;

    }
}

相关推荐

  1. 后端Long类型参数前端接受精度丢失解决方案

    2023-12-08 19:48:01       9 阅读
  2. 前端计算精度丢失问题

    2023-12-08 19:48:01       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 19:48:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 19:48:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 19:48:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 19:48:01       20 阅读

热门阅读

  1. macOS sandbox 获取用户路径文件夹

    2023-12-08 19:48:01       34 阅读
  2. final, finally, finalize的区别

    2023-12-08 19:48:01       29 阅读
  3. 算法训练营Day9(字符串,以后补KMP)

    2023-12-08 19:48:01       41 阅读
  4. 数据宝库:深入探讨数据隐私与安全的要义

    2023-12-08 19:48:01       28 阅读
  5. React中的页面跳转方式详解

    2023-12-08 19:48:01       38 阅读
  6. 前端实习面试常考(定位、文档流)

    2023-12-08 19:48:01       40 阅读