该对象需要存进redis里面,序列化进去,没发现问题,但反序列化时,报如下错
经查,原来是fastjson不支持泛型,液纯铅修改原闹好有的对象即可:
去掉泛形后序裤余列化一起正常。
解析报错:com.alibaba.fastjson.JSONException: Rounding necessary
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:708)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:677)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:245)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:217)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:187)
at com.t3.network.helper.f.onNext(:5)
at io.reactivex.internal.operators.observable.ObservableObserveOn ObserveOnObserver.run(ObservableObserveOn.java:255)
at io.reactivex.android.schedulers.HandlerScheduler MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
Caused by: java.lang.ArithmeticException: Rounding necessary
at java.math.BigDecimal.toBigIntegerExact(BigDecimal.java:2392)
at java.math.BigDecimal.valueExact(BigDecimal.java:2869)
at java.math.BigDecimal.intValueExact(BigDecimal.java:2454)
at com.alibaba.fastjson.serializer.IntegerCodec.deserialze(IntegerCodec.java:107)
at com.alibaba.fastjson.parser.DefaultFieldDeserializer.parseField(DefaultFieldDeserializer.java:73)
at com.alibaba.fastjson.parser.JavaBeanDeserializer.parseField(JavaBeanDeserializer.java:1012)
at com.alibaba.fastjson.parser.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:770)
at com.alibaba.fastjson.parser.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:118)
at com.alibaba.fastjson.parser.ListTypeFieldDeserializer.parseArray(ListTypeFieldDeserializer.java:214)
找了大佬,一针见血指出问题:边界出错;就是位缺塌数可能太多。网上找解决方法,有的是int 类型赋值了3.6这种float了,也会出现这种解析错误。
而我梁腔的主要是解析下面为double时造成
"lat":31.911295789937384,
"lng":118.81761768130724,
返回位数太多,应该是超出android 中的double能容纳的位数了;直接改为String ,橡扮衫完美解决!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)