解决Sprngboot web前端展示Long数据精度丢失问题

问题场景

当数据库中的Long字段值过大,并展示在前端时,有可能会出现精度丢失。

例如某某表的主键是bigint(20),且值为”49572448361881608623“,通过springboot controller返回到前端展示时,值变为”49572448361881609000“。

解决方案

以JPA / hibernate映射的对象为例,在set方法上加上JsonSerialize注解,将Long转换为String类型

@JsonSerialize(using = ToStringSerializer.class)
public void setId(Long id) {
    this.id = id;
}

上述注解需要jackson core,databind和annotations依赖包,需在Pom文件中添加以下代码

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.8</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.8</version>
</dependency>

猜你喜欢

转载自www.cnblogs.com/wanbao/p/10270014.html