JSON 对许多软件开发者来说是家常便饭,对做任何与 Web 相关工作的人更是如此。这个格式本身已经 21 岁了,我们来聊聊它身上一些令人意外的特点

在设计上就没有注释——也就是说,它没有注释的语法,所以自然有很多格式又把注释加了回来(比如 JSONC)。有趣的是,注释其实是从最初的 JSON 标准里被删掉的。
从 JSON 中删掉注释,让 YAML 更接近于 JSON 的超集。YAML 并不像很多人以为的那样(*根据我的观察)是很多年后才出现的东西,YAML 也已经 20 岁了
没有安全的办法来扩展或重新定义 JSON(它没有版本号,而且无论如何都不应该被修改)
数字。尽管名叫 JSON(据道格拉斯·克罗克福德说,最初尝试的名字是 JSML),JSON 的数字却不是 JavaScript 的数字。JSON 的数字不是 IEEE-754 之类标准的超集(你无法编码 NaN 和 +- Infinity,而它们在 JavaScript 和许多其他语言里都是合法的值),但你可以表示整数或者(有时是)有理数。至于其他东西,你得用字符串(或者干脆闭上眼睛,祈祷一切顺利)
看看 JSON 标准的名字:ECMA-404(我很好奇这是不是一个双关)
链接
JSON 网站 https://json.org——JSON 的网站(顺便说一句,JSON 的 logo 很酷)
JSON 的 ECMA-404 标准(这个 404 看着可真眼熟)https://www.ecma-international.org/publications-and-standards/standards/ecma-404/
Douglas Crockford: The JSON Saga https://www.youtube.com/watch?v=-C-JoyNuQJs(JSON 的发现者亲自讲述 JSON 的历史。强烈推荐大家看看,它比任何一部漫威电影都精彩)
原文发表于 Medium:https://medium.com/@nettsundere/the-peculiarities-of-json-165cca38231f