一、情景介绍
在项目开发过程中,当后端返回给前端的类型为 Long
类型时,如果值超过了前端 js
显示的长度范围的话会导致数字精度丢失,但我们又不想变更字段的类型,此时我们可以在序列化返回时将 Long
类型转换成 String
类型。
二、转换方式
1、使用 @JsonSerialize
注解
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
public class Demo {
@JsonSerialize(using = ToStringSerializer.class)
private Long uid;
}
注意: 该注解生效的类型必须是包装类,如果是原生的类型比如 long
会转换失败。
2、使用全局配置
使用 @JsonSerialize
有很大的局限性,就是需要在每个要转换的类型上添加该注解,所以,我们可以通过 WebMvcConfigurer
来实现全局序列化:
import com.fasterxml.jackson