JSON中的大整数为什么会改变
订单ID即使符合JSON语法,转换为JavaScript Number时也可能改变。格式整理不同于数值运算。示例使用9007199254740993,比最大安全整数大1。
输入与结果
JSON | {"id":9007199254740993} |
JSON.parse(...).id | 9007199254740992 |
Apps24 | { "id": 9007199254740993 } |
理解结果
JSON.parse会得到9007199254740992。Apps24验证语法后仅调整原始标记之间的空白,保留数字位数。这是保存原文,不是保证所有接收程序都能精确计算。验证成功不表示API模式、必填字段或重复键符合要求。
下一步
粘贴示例并比较格式化前后的ID。若它是标识符而不是金额,可与API负责人约定使用{"id":"9007199254740993"}等字符串格式。不要随意给所有数字加引号,这会改变数据类型。还需检查接收程序和数据库的存储类型。
使用工具限制与测试条件
回归测试核对了数字、重复键、指数和字符串中的空白。工具不会修复无效JSON,也不执行任意精度运算。请勿输入生产环境密钥或令牌。
参考来源
Apps24通过实现代码和回归测试核对示例。浏览器实验会说明条件,但不保证所有设备的结果。反馈错误时请提供网址、示例输入、预期结果和浏览器。请勿发送密码、私人文档或个人信息。