SpringBoot2.0中使用Jackson导致Long型数据精度丢失问题

问题描述

使用SpringBoot将Long类型值返回JSON到前端,发现数值最后几位显示为0,出现精度丢失问题。
在这里插入图片描述

解决方法

只需要在springboot中配置自定义类型转换器,将Long类型转换为String类型即可。代码如下:

@SpringBootApplication(exclude = {MultipartAutoConfiguration.class})
public class DemoApplication {

    /**
     * 解决Jackson导致Long型数据精度丢失问题
     * @return
     */
    @Bean("jackson2ObjectMapperBuilderCustomizer")
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        Jackson2ObjectMapperBuilderCustomizer customizer = new Jackson2ObjectMapperBuilderCustomizer() {
            @Override
            public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {
                jacksonObjectMapperBuilder.serializerByType(Long.class, ToStringSerializer.instance)
                        .serializerByType(Long.TYPE, ToStringSerializer.instance);
            }
        };
        return customizer;
    }

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

发布了8 篇原创文章 · 获赞 0 · 访问量 303

猜你喜欢

转载自blog.csdn.net/zwn888zwn/article/details/103597998