Javascript 字符串到JSON解析问题及数字转换

Javascript 字符串到JSON解析问题及数字转换,javascript,json,axios,fetch,Javascript,Json,Axios,Fetch,大家好,我正在使用JavaScript将字符串转换为Json对象,下面是我的代码 const json='{“result”:true,“count”:42,“groupID”:800000000000809}'; const obj=JSON.parse(JSON); 控制台日志(obj)您试图分析的整数太大。JavaScript最多只支持53位整数,因此JavaScript中的Number类型的最大值为+/-9007199254740991。再大一点,您需要使用BigInt。了解如何在Ja

大家好,我正在使用JavaScript将字符串转换为Json对象,下面是我的代码

const json='{“result”:true,“count”:42,“groupID”:800000000000809}';
const obj=JSON.parse(JSON);

控制台日志(obj)您试图分析的整数太大。JavaScript最多只支持53位整数,因此JavaScript中的
Number
类型的最大值为+/-9007199254740991。再大一点,您需要使用
BigInt
。了解如何在JavaScript中使用大整数

我建议将API响应中的
groupID
更改为
string
而不是
integer


如果您不能做到这一点,那么您还可以尝试使用JSON解析库来处理
BigInt
类型,例如..

您可以始终检查
Number.MAX\u SAFE\u INTEGER()
。让我们将此结果与您正在使用的数字进行比较:

9007199254740991

800000000000826

您的数字似乎超过了JavaScript支持的整数技术上限。我测试了其他一些数字,它们似乎也有类似的问题。文档

MAX_SAFE_INTEGER常量表示JavaScript中的最大安全整数(253-1)

对于较大的整数,考虑使用BigIt。(来源:

不过,您始终可以使用字符串,因为您可能实际上是从web服务器而不是本地定义的服务器获取此JSON:

const json='{“result”:true,“count”:42,“groupID”:“800000000000809”};
const obj=JSON.parse(JSON);

console.log(obj);
这是否回答了您的问题?