千家信息网

java中Long类型转为json后数据损失精度怎么办

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了java中Long类型转为json后数据损失精度怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在项目开发中,使
千家信息网最后更新 2026年10月31日java中Long类型转为json后数据损失精度怎么办

这篇文章主要介绍了java中Long类型转为json后数据损失精度怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

在项目开发中,使用spring boot+mybatis的架构,数据库设计主键id时定义为bigint类型,使用mybatis的自动生成代码后没注意,主键在pojo里的类型为Long。查询时获取的对象列表取出的数值没有问题,但转为json传到前端后,id的数据始终不是数据库查出来的那个。

数据库表结构设计

AbumTip类

根据外键abum_id在数据库中查询的结果

Controller查到的结果

chrome浏览器preview结果

可以看到abumId(对应表abum_id)和tipId(对应表中tip_id)查询到的Long类型的数据都不对。

解决的方法

方法一

重新生成pojo对象,将所有数据库类型为bigint都映射成String类型。

方法二

对于使用springboot,则增加配置代码:

package com.gj.app.config; import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.module.SimpleModule;import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;import org.springframework.context.annotation.Configuration;import org.springframework.http.converter.HttpMessageConverter;import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import java.util.List; @EnableWebMvc@Configurationpublic class WebDataConvertConfig extends WebMvcConfigurerAdapter {        public void configureMessageConverters(List> converters) {            MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();            ObjectMapper objectMapper = new ObjectMapper();            /**             * 序列换成json时,将所有的long变成string             * 因为js中得数字类型不能包含所有的java long值             */            SimpleModule simpleModule = new SimpleModule();            simpleModule.addSerializer(Long.class, ToStringSerializer.instance);            simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);            objectMapper.registerModule(simpleModule);            jackson2HttpMessageConverter.setObjectMapper(objectMapper);            converters.add(jackson2HttpMessageConverter);        }}

方法三

在spring MVC中

增加类:

其中LongToStringJsonConverter为自定义转换器

public class LongToStringJsonConverter extends ObjectMapper {    /**     *      */    private static final long serialVersionUID = 1683531771040674386L;     @Override    public ObjectMapper registerModule(Module module) {        SimpleModule simpleModule = new SimpleModule();        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);        simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);        return super.registerModule(simpleModule);    }}
                                                                                                                                                                                                                                                                                                   

感谢你能够认真阅读完这篇文章,希望小编分享的"java中Long类型转为json后数据损失精度怎么办"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

数据 类型 数据库 方法 篇文章 结果 查询 怎么办 损失 精度 代码 对象 设计 不对 价值 兴趣 前端 同时 序列 数值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 有格互联网科技 互联网加科技 南京欣网互联网络科技有限公司 新华互联网科技学院 赫美联合互联网科技 广州紫鲸互联网科技 玖二柒互联网科技公司待遇 中国科技互联网公司收入 小米互联网科技园设置 北京华百购互联网科技有限公司 互联网还是高科技吗 中国航天科技大学国际工业互联网 辽宁互联网新科技 本届互联网博览会上的黑科技 四川慕妮娅互联网科技有限公司 烟台灵鸽互联网科技有限公司 互联网科技包装股份有限公司上市 互联网高科技行业有哪些企业 北京军民互联网科技公司 互联网科技和医药行业 互联网 科技创业 嘟嘟瓜互联网科技 朗涯互联网科技 丰台科技园 互联网 时间互联网络科技 互联网科技类展会 阿里巴巴算科技企业还是互联网 智腾互联网科技有限公司 知域互联网科技有限公司大骗子 玉溪新华互联网科技好不好
0