my obj = {
"formname": ["appname", {
"operation": ["add", {
"values": {
"Activation_code": "12345",
"ID": 722756000010586033,
"game_Id": "10000"
},
"status": "Success"
}]
}]
}
上面的代码是来自服务器的我的对象我没有问题得到的点是为什么JSON.parse(obj)
在对象经过其功能后更改ID。
因此在解析后它会将ID吐回722756000010586000为什么?
答案 0 :(得分:0)
数字精度的cos,你的id超过最大安全整数,我建议把它保持为字符串。
console.log(722756000010586033 > Number.MAX_SAFE_INTEGER)
console.log(722756000010586033);
基本上有一些有限的内存用于在JS中存储数字,并且有限的momory可以记住有限数量的数字。这有点复杂,但基本上就是这样。
您可以使用正则表达式提取您的ID:
const JSON = `{
"formname": ["appname", {
"operation": ["add", {
"values": {
"Activation_code": "12345",
"ID": 722756000010586033,
"game_Id": "10000"
},
"status": "Success"
}]
}]
}`;
const matched = JSON.match(/"ID":\s*(\d+),/);
const id = matched[1];
document.body.innerHTML = id;