有关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即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于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最大的设计失误
· 单元测试从入门到精通