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

在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 {

    @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;
    }
}
相关推荐
脉动数据行情3 小时前
Java OkHttp 对接国际期货批量行情 SpringBoot 定时落库实践
java·spring boot·okhttp
Wang's Blog3 小时前
Java 项目实战: 交友项目 - 百度人脸识别:介绍
java·开发语言·交友
一枕槐安4874 小时前
大模型应用后端设计:上下文管理、缓存、降级策略的工程方案总结
java·spring·缓存
T_Apollo4 小时前
2.9 Java 25 版本新增特性和类
java
步行cgn4 小时前
@RequestMapping 注解详解
java·后端·spring
鶴哥只手遮天4 小时前
Spring Boot 4.1.1 深度源码解析-第 15 章 · 条件注解体系:全部 `@ConditionalOnXxx` 的实现原理
java·后端·开源
鶴哥只手遮天4 小时前
Spring Boot 4.1.1 深度源码解析-第 30 章 · 基础设施能力:SSL Bundle、Task 与虚拟线程、Retry
java·后端·开源
IT研究室4 小时前
最新计算机毕业设计选题推荐-基于微信小程序的汉服交易系统-网站-文档指导-Java-springboot
java·微信小程序·课程设计
鶴哥只手遮天4 小时前
Spring Boot 4.1.1 深度源码解析-第 26 章 · 指标、观测与链路追踪:Micrometer 与 OpenTelemetry
java·后端·开源
Wang's Blog4 小时前
Java 项目实战: 交友项目 - 章节复盘:微服务骨架与手机号验证码登录
java·微服务·交友