Long类型精度丢失

当实体类中的字段为Long类型,且值超过前端js显示的长度范围时会导致前端回显错误。

方法1 使用@JsonSerialize注解的时候把Long自动转为String

复制代码
@JsonSerialize(using = ToStringSerializer.class)
private Long id;

方法2 使用@JsonFormat注解的时候把Long自动转为String

复制代码
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;

方法3 全局配置org.config.WebMvcConfiguration中添加如下代码

复制代码
   builder.serializerByType(Long.class, ToStringSerializer.instance);
   builder.serializerByType(Long.TYPE, ToStringSerializer.instance);

具体配置如下

复制代码
@Bean
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
    return builder -> {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        //返回时间数据序列化
        builder.serializerByType(LocalDateTime.class, new LocalDateTimeSerializer(formatter));
        //接收时间数据反序列化
        builder.deserializerByType(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
        //序列化Long
        builder.serializerByType(Long.class, ToStringSerializer.instance);
        builder.serializerByType(Long.TYPE, ToStringSerializer.instance);
    };
}
相关推荐
菜菜小狗的学习笔记1 分钟前
Java SE(一)内部类、Lambda表达式、Stream流
java·开发语言
码云数智-园园2 分钟前
Java中的重载(Overload)与重写(Override):本质区别、场景与注意事项
java·开发语言
yxm26336690813 分钟前
洛谷P1217回文质数
java·开发语言
金斗潼关3 分钟前
java反序列化入口方法介绍
java·开发语言·jvm·序列化·反序列化
一直都在5728 分钟前
Java并发面经(二)
java·开发语言·spring
小雷君13 分钟前
SpringBoot 接口开发5个高频踩坑总结
java·spring boot·后端·面试
aloha_78916 分钟前
软考高项-第二章-信息技术发展
java·人工智能·python·学习
寒秋花开曾相惜20 分钟前
(学习笔记)3.8 指针运算(3.8.5 变长数组)
java·c语言·开发语言·笔记·学习
途经六月的绽放42 分钟前
常见设计模式及其应用示例
java·设计模式
REI-43 分钟前
黑马点评项目启动
java·后端