The comments on Tim Bray's post about RFC-7159请注意,您无法在JSON号码中使用NaN
或Infinity
:
我对JSON的一个主要痛点 - 也是我真心希望的一个 本来可以解决的 - 数字格式不是IEEE 754 兼容。事实上,这篇文章在棺材中明确指出:
“无法在下面的语法中表示的数值(例如 因为Infinity和NaN不被允许。“
这意味着我们常常将所有数字数据放入其中 串;或者只是忽视标准并使用“Inf”和“NaN” 在我们的JSON数字字段中。当然,这两者都不是理想的,但事实如此 寿命。
尝试对Chrome上的NaN
(JSON.stringify(0/0)
)或Infinity
(JSON.stringify(1/0)
)进行JSON编码,即可获得"null"
,并解析{{1 }当然给了我"null"
,当与数字一起使用时,它没有null
或NaN
的属性:
Infinity
我是否有比评论中列出的更好的选项?
> null*0
0
> NaN*0
NaN
和Infinity
(这仍然提出了一个问题:我们如何让JSON编码器和解码器接受它?)