鍍金池/ 問答/HTML5  HTML/ 拿到后臺數(shù)據(jù)后JSON.parse()發(fā)現(xiàn)數(shù)據(jù)跟原本不一致要如何解決

拿到后臺數(shù)據(jù)后JSON.parse()發(fā)現(xiàn)數(shù)據(jù)跟原本不一致要如何解決

從后臺獲取到的JSON為一個字符串形式的數(shù)據(jù):

{"createTime":1528773852384,"dealPrice":"0.000000","id":19144683686985728,"isView":true,"totalPrice":"1.000000","waitProduct":"1.000000"}

這條數(shù)據(jù)的id為19144683686985728,但JSON.parse()后發(fā)現(xiàn)數(shù)據(jù)轉(zhuǎn)換后被改動了

{
    "createTime": 1528773852384,
    "dealPrice": "0.000000",
    "id": 19144683686985730,
    "isView": true,
    "totalPrice": "1.000000",
    "waitProduct": "1.000000"
}

id后兩位從28改成了30,應(yīng)該如何讓它正常解析,求解,最好是能前端解決

回答
編輯回答
薄荷糖

JSON.parse是沒法用的,大于安全值Number.MAX_SAFE_INTEGER(2^53-1),精度不夠無法表示。
后臺返回string吧。

2017年6月22日 23:52
編輯回答
純妹

JS 中能精準表示的最大整數(shù)是 Math.pow(2, 53),十進制即 9007199254740992.你這樣表示數(shù)字就可能丟失精度,數(shù)字不準確
建議讓后端id傳個字符串過來

2018年7月29日 05:24
編輯回答
淡墨

var value = json.match(/"id":(d+)/)[1];
var data = JSON.parse(json);
data.id = value;

2017年3月3日 14:34
編輯回答
維她命

返回字符串"id":"19144683686985728"就行了

2017年3月7日 00:28
編輯回答
神經(jīng)質(zhì)

這個不是解析造成的,你抓下包看看傳過來的數(shù)據(jù)本身是否錯誤

2018年1月7日 12:03