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

Java 后端给前端返回的long精度缺失,导致数据不一致

在Java等语言中,Serializable接口是用来标识一个类的对象可以被序列化,即可以转换为字节流以便存储或传输。然而,将long类型的数据转换成字符串格式进行序列化并不直接涉及实现Serializable接口。你所提到的序列化是指如何将对象转换为JSON格式(或其他格式),以便通过HTTP响应发送给前端。

对于Java Spring Boot应用来说,通常我们会使用Jackson库来处理JSON序列化和反序列化。为了确保long类型的字段以字符串形式出现在JSON响应中,你可以采取以下几种方法之一:

1. 使用 @JsonSerialize 注解

可以在实体类的特定字段上使用Jackson的@JsonSerialize注解,并指定自定义的序列化器,比如ToStringSerializer,它会把数值转为字符串。

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

public class MyEntity {   


    //实体类中加上注解单个处理
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    // getters and setters
}

2. 全局配置

 如果你希望所有Long类型的字段都自动转换为字符串,可以通过配置Jackson的ObjectMapper来实现全局设置。这可以在Spring Boot应用的配置类中完成。

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.fasterxml.jackson.databind.module.SimpleModule;

//使用全局配置,处理所有的long类型
@Configuration
public class JacksonConfig {

    @Bean
    public ObjectMapper objectMapper() {
        SimpleModule module = new SimpleModule();
        module.addSerializer(Long.class, new ToStringSerializer());
        module.addSerializer(Long.TYPE, new ToStringSerializer());

        ObjectMapper mapper = new ObjectMapper();
        mapper.registerModule(module);
        return mapper;
    }
}


http://www.kler.cn/a/445364.html

相关文章:

  • Android详解——ConstraintLayout约束布局
  • JumpServer开源堡垒机搭建及使用
  • Python-存储数据-Thu-Fri
  • git使用和gitlab部署
  • WebSocket入门与结合redis
  • Java写URI网址唤醒APP小程序等NDEF信息
  • 京东大数据治理探索与实践 | 京东零售技术实践
  • 构建全方位大健康零售帮助中心:提升服务与体验
  • ES6学习Set 、Map(六)
  • 新能源汽车产销数据分析
  • MYSQL_联合查询(全)
  • MacOS安装MySQL
  • 监控IP频繁登录服务器脚本
  • 卡尔曼滤波效果(python应用)
  • 半导体制造技术导论(第二版)萧宏 第十二章 化学机械研磨工艺
  • 负载均衡-lvs
  • TDengine 新功能 通过 UID 删除不可见表
  • Midjourney参数大全
  • 【ETCD】当客户端从follower节点发起写请求时候,ETCD集群是如何处理此次的写请求呢?
  • 如何从 ASP.NET Core IIS上传大文件一些配置
  • [python SQLAlchemy数据库操作入门]-02.交易数据实体类建立
  • Kioptix Level 2靶场练习保姆级---春不晚
  • git企业开发的相关理论(一)
  • 深入解析MySQL Explain关键字:字段意义及调优策略
  • EasyExcel 导出文件
  • html中实用标签dl dt dd(有些小众的标签 但是很好用)