当前位置: 首页 > news >正文

Spring Boot接口返回Long类型的数据时丢失精度的全局处理

1、问题

当实体类中的字段为Long类型时,通过Ajax请求返回给前段,在js中数据会丢失精度
在这里插入图片描述
直接通过postman请求或通过浏览器请求,看下响应则不会丢失精度
在这里插入图片描述

2、处理方式

1、使用@JsonSerialize注解

@JsonSerialize(using = ToStringSerializer.class)
private Long id;

2、使用@JsonFormat注解

@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;

3、全局配置ObjectMapper Bean

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;

@Slf4j
@Configuration
public class JacksonConfig {
    /**
     * Jackson对象映射器
     * @param builder builder
     * @return ObjectMapper
     */
    @Bean
    @Primary
    @ConditionalOnMissingBean(ObjectMapper.class)
    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
        try {
            // 将Long类型返回时修改为String类型
            builder.serializerByType(Long.TYPE, ToStringSerializer.instance);
            builder.serializerByType(Long.class, ToStringSerializer.instance);
        } catch (Exception e) {
            log.info("Serialization exception!");
        }
        return builder.build();
    }
}
http://www.dtcms.com/a/119266.html

相关文章:

  • LCR 131. 砍竹子 I
  • 什么是混合搜索Hybrid Search?
  • Python 小练习系列 | Vol.14:掌握偏函数 partial,用函数更丝滑!
  • 和DeepSeek聊高速公路定向广播
  • NO.79十六届蓝桥杯备战|数据结构-扩展域并查集-带权并查集|团伙|食物链|银河英雄传说(C++)
  • CesiumEarth v1.12 更新,支持安卓平板离线浏览3DTiles格式的三维倾斜模型
  • 【计网】作业4
  • 树和图论(详细整理,简单易懂!)
  • AutoGLM沉思使用方式
  • 【已完结STM32】--自学江协科技笔记汇总
  • WHAT - React 元素接收的 ref 详解
  • 最新Spring Security实战教程(九)前后端分离认证实战 - JWT+SpringSecurity无缝整合
  • 进程间通信-共享内存
  • 辛格迪客户案例 | 河南宏途食品实施电子合约系统(eSign)
  • Wideband Sparse Reconstruction for Scanning Radar论文阅读
  • Linux网络配置与测试
  • 鸿蒙小案例-京东登录
  • 记录IBM服务器检测到备份GPT损坏警告排查解决过程
  • 信息系统项目管理师-第十四章-项目沟通管理
  • 收敛算法有多少?
  • 一周学会Pandas2 Python数据处理与分析-Pandas2一维数据结构-Series
  • k8s创建一个pod,查看状态和详细信息,进入pod,以及删除这个pod
  • 智能指针C++11
  • Spring Boot 通过全局配置去除字符串类型参数的前后空格
  • 遵循IEC62304YY/T0664:确保医疗器械软件生命周期合规性
  • 【Hadoop入门】Hadoop生态之MapReduce简介
  • 25.4.8学习总结
  • 自定义实现C++拓展pytorch功能
  • 无标记点动作捕捉方案:偃动坊无标记动作捕捉系统,解锁无穿戴动捕体验
  • 浅谈类的复制构造函数和赋值运算符