返回json数据给前端精度丢失问题

java中Long的取值范围:(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)
js中Number的范围:-2^53 ------ 2^53
显然,这里会出现精度丢失的问题,给出两个解决方案:
1)Long转为String,再塞进json,这个方法比较粗暴;
2)使用@JsonSerialize注解(https://www.cnblogs.com/luxianyu-s/p/9640588.html)

@Data
public class BasePageResInfo<T> {
    private T data;

    @JsonSerialize(using=LongConvString.class)
    private String nextSpnum;//查看更多,翻页功能

    public BasePageResInfo(T rows, String nextSpnum) {
        this.data = rows;
        this.nextSpnum = nextSpnum;
    }
}
public class LongConvString extends JsonSerializer<Long> {
    @Override
    public void serialize(Long aLong, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
        jsonGenerator.writeString(aLong.toString());
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容