java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot中Jackson配置Long转字符串的正确方法

Spring Boot中Jackson配置Long转字符串的正确方法是什么

作者:没事儿写两篇

还在为前端JS显示Long型数字精度丢失而烦恼吗?本文教你如何在Spring Boot中通过Jackson配置将Long类型序列化为字符串,彻底解决大数字展示错误问题,简单实用,看完就会

前言

Jackson对long型的转换是没有问题的。

只不过前端js有个问题,java的long型,在转换后,js中展示会损失精度。

如:1500829886697496578,在前端使用js数字类型展示是可能就变成了1500829886697496600。

为了解决这个问题,一般情况下我们会将后端的Long型转换为字符串类型。

Jackson配置Long转换为字符串类型

在Spring boot环境下,配置如下代码即可

import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JacksonConf {

    /**
     * 自定义序列化类型转换
     * 注:此处解决Long型转换后,前端js损失精度的问题,将Long型转换为字符串类型
     */
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        Jackson2ObjectMapperBuilderCustomizer customizer = jacksonObjectMapperBuilder ->
                jacksonObjectMapperBuilder.serializerByType(Long.class, ToStringSerializer.instance)
                .serializerByType(Long.TYPE, ToStringSerializer.instance);
        return customizer;
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文