返回顶部
首页 > 资讯 > 精选 >SpringBoot怎么解决Long型数据转换成json格式时丢失精度问题
  • 876
分享到

SpringBoot怎么解决Long型数据转换成json格式时丢失精度问题

2023-07-02 10:07:29 876人浏览 安东尼
摘要

这篇“SpringBoot怎么解决Long型数据转换成JSON格式时丢失精度问题”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇

这篇“SpringBoot怎么解决Long型数据转换成JSON格式时丢失精度问题”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springBoot怎么解决Long型数据转换成json格式时丢失精度问题”文章吧。

解决Long型数据转换成json格式时丢失精度

最近项目中突然发现雪花算法生成的数据库主键id返回给前端时和本身的值不一致,于是后端进行断点调试发现没问题,于是问题聚焦于转换json格式,于是自定义Json 格式化,因为使用Springboot,全是自动化配置,所以要覆盖框架本身的转换方式,经翻阅官方文档,提下下列注解,自定json转换

SpringBoot怎么解决Long型数据转换成json格式时丢失精度问题

代码如下:

@JsonComponentpublic class JsonSerializerManage {    @Bean    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {        ObjectMapper objectMapper = builder.createXmlMapper(false).build();        //忽略value为null 时 key的输出        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);                SimpleModule module = new SimpleModule();        module.addSerializer(Long.class, ToStringSerializer.instance);        module.addSerializer(Long.TYPE, ToStringSerializer.instance);        objectMapper.reGISterModule(module);        return objectMapper;    }}

SpringBoot时间格式,Long型精度丢失常见问题

时间格式,Long型精度丢失

方法一: 在配置文件application.yml中增加如下代码即可。

注意:WEBmvcConfig配置类或启动类中不要加@EnableMVC注解,加了会导致jackson配置失效

spring:  jackson:    ## 日期格式(可根据自己的需求修改格式)    date-fORMat: yyyy-MM-dd HH:mm:ss     generator:     ## 将数值类型转换为字符串,解决long型精度丢失      write_numbers_as_strings: true
@SuppressWarnings("deprecation")@Configurationpublic class AppWebMvcConfig extends WebMvcConfigurerAdapter{        //省略代码片段}

方法二:新建WebMvcCofig配置文件,重写数据转换方法。

注意:@EnableMVC注解不可缺失,缺失会导致Long型精度丢失 

@SuppressWarnings("deprecation")@Configuration@EnableWebMvcpublic class AppWebMvcConfig extends WebMvcConfigurerAdapter{@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>>   converters){FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();FastJsonConfig fastJsonConfig = new FastJsonConfig();SerializeConfig serializeConfig = SerializeConfig.getGlobalInstance();//支持的数据类型List<MediaType> supportedMediaTypes = new ArrayList<MediaType>();supportedMediaTypes.add(MediaType.APPLICATION_JSON);supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);supportedMediaTypes.add(MediaType.APPLICATION_ATOM_XML);supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);supportedMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);supportedMediaTypes.add(MediaType.APPLICATION_pdf);supportedMediaTypes.add(MediaType.APPLICATION_RSS_XML);supportedMediaTypes.add(MediaType.APPLICATION_Xhtml_XML);supportedMediaTypes.add(MediaType.APPLICATION_XML);supportedMediaTypes.add(MediaType.IMAGE_GIF);supportedMediaTypes.add(MediaType.IMAGE_JPEG);supportedMediaTypes.add(MediaType.IMAGE_PNG);supportedMediaTypes.add(MediaType.TEXT_EVENT_STREAM);supportedMediaTypes.add(MediaType.TEXT_HTML);supportedMediaTypes.add(MediaType.TEXT_markdown);supportedMediaTypes.add(MediaType.TEXT_PLaiN);supportedMediaTypes.add(MediaType.TEXT_XML);fastConverter.setSupportedMediaTypes(supportedMediaTypes);serializeConfig.put(Long.class, ToStringSerializer.instance);//Long转StringserializeConfig.put(Long.TYPE, ToStringSerializer.instance);//Long转StringfastJsonConfig.setSerializeConfig(serializeConfig);fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");//日期格式fastConverter.setFastJsonConfig(fastJsonConfig);converters.add(fastConverter);}

以上就是关于“SpringBoot怎么解决Long型数据转换成json格式时丢失精度问题”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: SpringBoot怎么解决Long型数据转换成json格式时丢失精度问题

本文链接: https://lsjlt.com/news/341097.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringBoot怎么解决Long型数据转换成json格式时丢失精度问题
    这篇“SpringBoot怎么解决Long型数据转换成json格式时丢失精度问题”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇...
    99+
    2023-07-02
  • SpringBoot2.0解决Long型数据转换成json格式时丢失精度问题
    目录解决Long型数据转换成json格式时丢失精度SpringBoot时间格式,Long型精度丢失常见问题时间格式,Long型精度丢失解决Long型数据转换成json格式时丢失精度 ...
    99+
    2024-04-02
  • SpringBoot全局配置long转String丢失精度的问题解决
    目录第一种方式 第二种方式 第三种方式 第四种方式(缺点:将所有的数字类型都会转为字符串) web项目中,Java后端传过来的Long/long类型,前端JS接收会丢失精度。 本文推...
    99+
    2024-04-02
  • js接受Long型损失精度问题怎么解决
    本篇内容介绍了“js接受Long型损失精度问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、场景描述在下面这个后台管理中,当我们...
    99+
    2023-07-05
  • Java序列化JSON丢失精度问题的解决方法(修复Long类型太长)
    目录原因:解决办法一:解决办法(二):总结Java序列化JSON时long型数值,会出现精度丢失的问题。 原因: java中得long能表示的范围比js中number大,也就意味着部...
    99+
    2024-04-02
  • java中Long类型转为json后数据损失精度怎么办
    这篇文章主要介绍了java中Long类型转为json后数据损失精度怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在项目开发中,使用spring boot+mybatis...
    99+
    2023-06-26
  • SpringBoot分页的实现与long型id精度丢失问题的解决方案介绍
    目录一.分页查询的实现二.禁/启用员工账号三.数值转换器的使用一.分页查询的实现 在做分页查询时流程如下: 页面发送ajax请求,将分页查询参数(page、pageSize、nam...
    99+
    2022-11-13
    SpringBoot分页 SpringBoot long型id精度丢失
  • php时间格式转换时间戳的问题怎么解决
    本文小编为大家详细介绍“php时间格式转换时间戳的问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“php时间格式转换时间戳的问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。时间戳是一个整数值...
    99+
    2023-07-05
  • Java雪花算法生成的ID传输前端后精度丢失问题怎么解决
    本文小编为大家详细介绍“Java雪花算法生成的ID传输前端后精度丢失问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java雪花算法生成的ID传输前端后精度丢失问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-07-05
  • Vue怎么解决router传递params参数在页面刷新时数据丢失问题
    本文小编为大家详细介绍“Vue怎么解决router传递params参数在页面刷新时数据丢失问题”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue怎么解决router传递params参数在页面刷新时数据丢...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作