有关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即可

posted @   嘻嘻哈哈的人生  阅读(712)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示