原文[1]:Breck Yunits[2] - 2024.09.05
JSON[3] 是 PLDB(A Programming Language Database)中唯一不支持注释的流行语言。JSON 既不支持单行注释[4],也不支持多行注释[5]。
JSON 最初是有注释的Douglas Crockford 在 2012 年解释了他独特的设计决策。他最初是支持注释的,但为了防止生态系统的分裂,最终决定去掉注释:
我之所以从 JSON 中删除注释,是因为我发现人们在使用注释来保存解析指令,这种做法将会破坏一致性和兼容性。我知道缺少注释让一些人感到不快,但这是不应该的。
假设你正在使用 JSON 来保存配置文件,并且想为它们添加注释。你可以随心所欲地插入注释,然后在传递给 JSON 解析器之前,通过 JSMin[6] 进行处理。
- Douglas Crockford - 2012 年 4 月 30 日 - 来源[7]
(注:Douglas Crockford 是一位著名的软件工程师和作家,以其在 JavaScript 语言发展中的贡献而闻名。他最广为人知的成就是定义了 JSON(JavaScript Object Notation),一种用于数据交换的轻量级数据格式。)
一些 JSON 的超集支持注释一些 JSON 的派生版本重新加入了注释功能,比如 JSON5[8]、Hjson[9] 和 JSON with Comments[10]。
参考资料[1]
原文: https://pldb.io/blog/a-language-without-comments.html
[2]Breck Yunits: https://github.com/breck7
[3]JSON: https://pldb.io/concepts/json.html
[4]单行注释: https://pldb.io/features/hasLineComments.html
[5]多行注释: https://pldb.io/features/hasMultiLineComments.html
[6]JSMin: https://github.com/douglascrockford/JSMin
[7]来源: https://web.archive.org/web/20141227005220/https://plus.google.com/+DouglasCrockfordEsq/posts/RK8qyGVaGSr
[8]JSON5: https://pldb.io/concepts/json5.html
[9]Hjson: https://pldb.io/concepts/hjson.html
[10]JSON with Comments: https://pldb.io/concepts/json-with-comments.html