是否指定JSON整数有多大?我猜他们只限于正常(32位)整数,但我找不到任何记录下来的东西.我需要编码Java中长的标识符,所以我假设我需要将它们存储为JSON中的字符串,以免冒出溢出的风险.
Tom*_*lak 78
JSON编号不受规范限制.

由于JSON是一种抽象格式,并非专门针对JavaScript,因此实际的目标环境决定了可以解释的边界.
值得注意的是,没有"JSON整数",它们是"Number"数据类型的子集.
Nol*_*lan 15
RFC 7159:JavaScript对象表示法(JSON)数据交换格式
该规范允许实现对接受的数字的范围和精度设置限制.由于实现IEEE 754-2008二进制64(双精度)数字[IEEE754]的软件通常可用并且被广泛使用,因此可以通过期望没有比这些提供的精度或范围更多的实现来实现良好的互操作性,在某种意义上,实现将近似于JSON预期精度内的数字.诸如1E400或3.141592653589793238462643383279之类的JSON号可能表示潜在的互操作性问题,因为它表明创建它的软件期望接收软件具有比广泛可用的数字量级和精度更高的能力.
我刚刚使用Chrome(Mac上的v.23)控制台进行了以下实证测试:
> var j = JSON.parse("[999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999]")
undefined
> j[0]
1e+228
Run Code Online (Sandbox Code Playgroud)
如果通过HTTP传递JSON,那么在任何情况下,数字都将从Java转换为String,然后问题可能只在Javascript中.
4.3.19数值
原始值对应于双精度64位二进制格式IEEE 754值
注意Number值是Number类型的成员,是数字的直接表示.
| 归档时间: |
|
| 查看次数: |
40570 次 |
| 最近记录: |