有关json-lib2.4在转java对象时超过7位数的Double类型会出现科学计数法和精度丢失的问题

在做项目当中发现当通过json-lib来将json字符串转成对象时,超过7位数的Double类型会出现科学计数法和精度丢失的问题,
把json-lib-2.4-jdk15.jar源码下载下来,发现是数字类型的都转为number了,而不是BigDecimal,把这里改为调用createBigDecimal在打成jar包,就可以了,具体操作如下:

1. 第一步找到源码中的JSONObject类的 _fromJSONTokener( JSONTokener tokener, JsonConfig jsonConfig ) 方法



2. 第二步通过 nextValue( jsonConfig )调用,找到类JSONTokener,将NumberUtils.createNumber(s)调用改为NumberUtils.createBigDecimal(s)即可


3.用工具重新打好jar包,替换掉之前旧版的jar即可

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试