问题场景:
使用postman调试接口,需要获取接口响应数据传给下一个接口时,发现获取的值和实际返回的数值不一样
接口返回的值:“productId”: 1426074049976598530
postman获取的值:“productId”: 1426074049976598500
排查发现是精度显示问题,因为long类型超过16位会发生精度丢失问题
解决方案一
让开发改代码,把返回的数据转化成string类型就可:
“productId”: “1426074049976598530”,这样我们直接获取就能正常显示了。如果开发不愿意麻烦,那我们就看方案二
解决方案二
自己将返回的数据用replace转化成string类型,先用正则把大数提取出来,然后左右加上双引号,就变成字符串了,然后用JSON.parse解析一下就行了。具体如下:
var data= JSON.parse(responseBody.replace(/:\s*(