今天项目中遇到一个奇怪的问题
String json = "{'userno':"111111111.1234",'orderid':111111111.1234}";
Map<String,Object> jsonMap = JSONObject.fromObject(json);
通过JSONObject.fromObject转换之后变成了:
{userno=111111111.1234, orderid=1.111111112E8}
后面转成实体返回给前端ID值被加1了,很奇怪。当时想着让接口方改bb中传String类型,但是你懂得,接口方不愿意。
于是各种尝试,用long、int、BigDecimal等等尝试转换,但是转换后的数值大小被加了1,最后打印日志察觉到JSONObject.fromObject后变成了X.XXXXXXE8格式
换一种转换方法:
com.alibaba.fastjson.JSONObject result = (com.alibaba.fastjson.JSONObject)com.alibaba.fastjson.JSONObject.parse(json);
最后,问题终于解决了。