51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

springboot Long类型json转换丢失精度

# 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;
    }
}
赞(4)
未经允许不得转载:工具盒子 » springboot Long类型json转换丢失精度