原文: Comments Inside JSON – Commenting in a JSON File

JSON(JavaScript Object Notation,JavaScript 对象表示法)因其简单灵活而成为 web 开发和移动应用程序中常用的数据交换格式。

但 JSON 文件本身并不支持注释。这使得为数据提供额外的上下文或解释具有挑战性。

本文将向你介绍如何在 JSON 文件中包含注释,以及 JSON 本身不支持注释的原因。

为什么 JSON 不支持注释

根据 JSON 规范,JSON 文档只应包含数组和对象等数据结构,而不应包含注释。这是因为 JSON 是一种简单的、易于解析的数据格式,可以快速有效地进行处理。

注释虽然有助于为人类读者提供额外的上下文或解释,但会增加解析过程的复杂性。这会降低性能并增加出错的风险。

JSON 不支持注释的主要原因是,其创建者道格拉斯·克罗克福特(Douglas Crockford)特意从格式中删除了注释,以防止误用并使其保持为纯数据格式。

克罗克福特观察到有些人使用注释来存储解析指令,这可能会破坏不同系统之间的兼容性。因此,他决定删除注释,以保持格式在各种编程语言和环境中的简洁性和一致性。

因此,在 JSON 文件中添加注释的唯一选择就是使用变通方法,例如使用自定义元素来存储注释。

如何在 JSON 中添加注释

当你以常用编程语言中使用的 //#/* */ 的形式添加注释时,你会发现 “JSON 中不允许添加注释 ”的错误。

s_7788E690364D593F2C3E31F8D1CF26EB90DAC0141414EE29BD5F57C061BD4347_1680020901125_image

那么,如何在 JSON 文件中添加注释呢

唯一的办法就是在 JSON 文件中将注释作为数据对加入。这种做法并不常用,也不值得推荐,但严格来说,这是添加注释到 JSON 文件的最佳方法。

在 JSON 对象中创建一个自定义元素(如 “_comment”),以便将注释与其他数据区分开来。

{
    "_comment": "Put your JSON comment here"
    "name": "John Doe",
    "age": 35,
    "city": "New York City",
    "isMarried": true,
    "occupation": "Software Engineer",
}

注意:并非必须使用下划线。你可以决定使用两个斜线,如 “//comment” 或任何其他允许的字符。这样做的目的是为了明确这是一个注释。

值得注意的是,这种方法可能会使 JSON 文件变得更加复杂和难以解析。但如果将注释添加为自定义元素,服务器端就会像接收和处理 JSON 中的其他数据一样接收和处理它们。

你现在知道如何在 JSON 文件中添加注释了。但如何添加多个注释呢?这是有可能的,但你要记住,JSON 不允许对象键重复。你必须在注释元素中包含唯一的字母或数字,确保其有效并能与 JSON 文件中的其他元素区分开来。

{
    "_comment1": "This is the basic data",
    "name": "John Doe",
    "age": 35,
    "city": "New York City",
    "_comment2": "Marital information",
    "isMarried": true,
    "wifeName": "Jane Doe"
}

当你嵌套 JSON 对象时,可以使用类似的对象键:

{
    "_comment": "This is the basic data",
    "name": "John Doe",
    "age": 35,
    "city": "New York City",
    "maritalInfo": {
        "_comment": "Marital information",
        "isMarried": true,
        "wifeName": "Jane Doe"
    }
}

小结

你现在知道如何在 JSON 文件中添加注释了。但是,由于这些注释也会被处理并可被访问,因此在使用自定义元素向 JSON 文件添加注释时需要小心谨慎。

感谢你阅读本文,祝你编码愉快!