JSON号码是否与JavaScript的号码相关联?

时间:2016-02-04 04:56:33

标签: javascript java json

JSON中的数字大小是否有限制?这不是我在谈论的JavaScript,而是JSON。

JSON与JavaScript如此关联 - 但仅仅因为一个数字不适合JavaScript的数字视图,是否会使它成为无效的JSON?

例如,JSON可以容纳Java Long吗?

2 个答案:

答案 0 :(得分:2)

来自RFC 7159

  

此规范允许实现设置范围限制      和接受的数字的精确度。自从实现的软件      IEEE 754-2008 binary64(双精度)数字[IEEE754]是      一般可用并广泛使用,良好的互操作性即可      通过期望不再精确或范围的实现来实现      从实现的角度来看,这些提供了      在预期精度内近似JSON数字。一个JSON      1E4003.141592653589793238462643383279等数字可能表示      潜在的互操作性问题,因为它暗示了      创建它的软件希望接收软件有更大的功能      数字量级和精度的能力比广泛      可用。

     

请注意,使用此类软件时,数字为整数和      在[-(2**53)+1, (2**53)-1]范围内是可互操作的      意识到实现将完全符合他们的数字      值。

tl; dr:建议您使用可互操作的数字(双精度),但不是必需的。

答案 1 :(得分:0)

在JSON中,数字将表示为字符串。如果数字太大(我认为超过53位)并且您尝试将字符串转换为 JavaScript 中的数字,则会发生意外情况。但是,如果 Java (或任何其他支持64位数字的语言)将字符串转换为适当的数字类型,您将获得预期的结果。