JSON 中数值的序列化

Serialization of numerical values in JSON

我注意到 https://jwt.io/ 为包含以不同表示法编写的数值的有效负载输出相同的 Base64 字符串。 例如,这两个有效载荷产生相同的 Base64 字符串:

{
  "value": 0.000001
}
{
  "value": 1.0e-6
}

两者都产生:eyJ2YWx1ZSI6MC4wMDAwMDF9 解码后显示为:{"value":0.000001}

在哪里可以找到有关此的更多信息?我想有一个 RFC 或类似形式的规范。也欢迎有关相关主题的非正式资源!

号码的创建方式无关紧要。我的意思是数字文字使用了哪种表示法。内部表示是 IEEE 754。当序列化发生时,两个值是相同的。因此,预期会有相同的序列化输出。

关于将数字序列化为字符串的方式,您可以阅读 Spec。 TLDR 它取决于有效数字的数量

console.log(1e-6 === .000001)

console.log(JSON.stringify(1e-6), 1e-6.toString())
console.log(JSON.stringify(1e-7), 1e-7.toString())