问题描述
问题描述:SpringMvc 前后端交互,当后端传一些值给前端的时候,如果是 long 类型,有可能会出现数字太大而前端接收不了(java 中的 long 大于 js 的 number)而导致数据不一致,精度会丢失。
解决方案
- 引入依赖后,使用JsonSerialize注解序列化的时候把Long自动转为String(单个属性)。
<!--这一步可选--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-json</artifactId> </dependency>
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @JsonSerialize(using = ToStringSerializer.class) private Long id;
- 由于在 SpringMVC 中, 将 Controller 方法返回值转换为json对象, 是通过 jackson 来实现的,涉及到SpringMVC中的一个消息转换器 MappingJackson2HttpMessageConverter,所以我们要解决这个问题, 就需要对该消息转换器的功能进行拓展。