springboot Long类型json转换丢失精度
# springboot Long 类型 json 转换丢失精度
本文讲述"springboot 项目 Long 类型数据做 json 转换后丢失精度"的解决方案。实际上这句话描述得并不准确,实际上是因为前端的 javascript 的整数类型的存储范围有限, 当接口返回的 Long 类型数据长度过大时, javascript 会进行截断,导致我们在前端页面上看到的数据丢失了精度。解决方法为接口的响应数据中,将 Long 类型转换为 String 类型。
处理方法:增加 1 个配置类即可。
# 创建配置类文件
package com.ruiboyun.facehr.config;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.springframework.boot.jackson.JsonComponent;
import org.springframework.context.annotation.Bean;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
/**
* json序列化配置
*/
@JsonComponent
public class JsonSerializerConfig {
@Bean
public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
SimpleModule module = new SimpleModule();
module.addSerializer(Long.class, ToStringSerializer.instance);
module.addSerializer(Long.TYPE, ToStringSerializer.instance);
objectMapper.registerModule(module);
return objectMapper;
}
}
上次更新: 2021-03-24 17:35:20