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

embedded/2024/12/25 21:35:31/

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

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

1. 使用 @JsonSerialize 注解

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

java">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应用的配置类中完成。

java">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 {@Beanpublic 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.ppmy.cn/embedded/148719.html

相关文章

如何在防火墙上指定ip访问服务器上任何端口呢

在 Linux 系统中,ufw(Uncomplicated Firewall)是一个常用的防火墙管理工具,它通过命令行来配置和管理防火墙规则。如果你想要为指定的 IP 添加规则,可以按照以下步骤操作。 1. 确认 ufw 是否已启用 首先,…

ide使用技巧与插件推荐(一)

集成开发环境(IDE)是开发者日常工作中不可或缺的工具,能够极大提高开发效率。通过熟练掌握 IDE 的使用技巧,以及安装和配置相关插件,可以大大提升编码速度、代码质量和开发体验。下面我将介绍一些常见 IDE 的使用技巧和…

某集团GIF动态验证码识别

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 本文识别已同步上线至OCR识别网站: http://yxlocr.nat300.top/ocr/other/16 最近某集团更新了验证码,采用gif验证码,部分数据集展示如下

电路设计-恒流电路

一、 电路作用 恒流电路是一种能够在一定条件下,使输出电流保持恒定不变的电路。不管负载电阻如何变化或者输入电压如何波动,其输出电流都能维持在一个设定的值。常用于LED驱动和电池充电 二、典型电路 1.三极管恒流电路 图1 …

DP协议系列一----DP概述

本系列文件参考VESA DisplayPort Standard Version 1, Revision 1a January 11, 2008,其中参杂个人理解和相关案例 一、DP概述 DisplayPort是一个行业标准,以适应PC和CE行业中日益广泛采用的数字显示技术。它整合了内部和外部连接方法,以降…

Spring事务管理深度解析-从实践到原理

事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制 分类 主要分为编程式事务和声明式事务两种。 编程式事务 是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强,如下示例: try {//TODO somethi…

Marin说PCB之POC电路layout设计仿真案例---06

我们书接上回啊,对于上面的出现原因我这个美女同事安娜说会不会你把POC电感下面的相邻两层的CUT_OUT的尺寸再去加大一些会不会变得更好呢?这个难道说是真的有用吗?小编我先自己算一卦看下结果。 本期文章我们就接着验证通过改善我们的单板POC…

V900新功能-电脑不在旁边,通过手机给PLC远程调试网关配置WIFI联网

您使用BDZL-V900时,是否遇到过以下这种问题? 去现场配置WIFI发现没带电脑,无法联网❌ 首次配置WIFI时需使用网线连电脑,不够快捷❌ 而博达智联为解决该类问题,专研了一款网关配网工具,实现用户现场使用手机…