项目场景:
后台调用其他接口返回字符串类型的数据,使用netj.sf.json转换成jsonObjct时数据
问题描述
在解析字符串时,数值类型会丢失精度
@Override
public void test() {
String date = "{"aa":12345678.12}"
net.sf.json.jsonObject json = JSONObject.fromObject(data);
}
原因分析:
net.sf.json在底层会把数值默认为folatl类型,并且使用了科学计数法,只保留8位有效数字
解决方案:
- 使用com.alibaba.fastjson来解决
- 或者将{}去除转换成map格式