美文网首页
返回json数据给前端精度丢失问题

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

作者: 杜子龙 | 来源:发表于2018-12-28 20:14 被阅读0次

    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());
        }
    }
    

    相关文章

      网友评论

          本文标题:返回json数据给前端精度丢失问题

          本文链接:https://www.haomeiwen.com/subject/kpgelqtx.html