栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot的Long传至前台,数值发生变化

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot的Long传至前台,数值发生变化

1.原因分析:

1)Javascript 语言的底层根本没有整数,所有数字都是小数(64位浮点数)
    1位(s) 用来表示符号位,0表示正数,1表示负数
    11位(e) 用来表示指数部分
    52位(f) 表示小数部分(即有效数字)
精准表示的最大整数是 2^{53} - 1,十进制为 9007199254740991

2)Java的Long类型的有效位数是63位(扣除一位符号位),其最大值为2^{63}-1,十进制为9223372036854775807

2.解决方案:

1)配置文件(全局配置)

spring:
  jackson:
    generator:
      write_numbers_as_strings: true


2)需要的Long字段上添加Jackson注解(局部配置)

@JsonSerialize(using = ToStringSerializer.class)


3.创建一个Jackson2ObjectMapperBuilderCustomizer,对Long型数据的数据序列化进行特殊处理,实现对Jackson2ObjectMapperBuilder的个性化定制(全局配置)。

@Configuration
public class MyJacksonConfig {
    @Bean
    public Jackson2Obj
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/673079.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号