引言

如果你无法在 JSON 文件中添加评论,理由很简单:JSON 不支持评论。

Douglas Crockford 写到:“我删除了 JSON 中的注释,因为我看到人们正在使用它们制定解析规则,这种做法会破坏互操作性。”他普及了基于文本的数据格式。

但是,有一种解决方法。这就是本文的主题:如何在 JSON 文件中添加注释。

添加数据作为注释

一种解决注释问题的方法是将数据添加到 JSON 文件中,作为注释。

我们来看一个示例,从 JSON 文件中的以下信息开始:

{
   "sport": "basketball",
   "coach": "Joe Smith",
   "wins": 15,
   "losses": 5
}

现在我们添加另一个键值对作为注释,即下方代码的第一行:

{
   "_comment1": "this is my comment",
   "sport": "basketball",
   "coach": "Joe Smith",
   "wins": 15,
   "losses": 5
}

下面是另一个示例。这次,我们用两条下划线作为键的起末:

 "__comment2__": "this is another comment",

下划线有助于将注释与文件中的其他数据区分开。

注意点

需要关注一个重要细节。

我们添加到 JSON 文件的注释包含在 JSON 对象中。换句话说,注释被作为数据。

这是什么意思呢?

这是我们文件中的代码, data.json

{
   "_comment1": "this is my comment",
   "sport": "basketball",
   "coach": "Joe Smith",
   "wins": 15,
   "losses": 5
}

现在我们从文件中读取数据,read_comments.py

import json
with open("data.json", mode="r") as j_object:
   data = json.load(j_object)
print(data)

这个结果包含注释:

{'_comment1': 'this is my comment', 'sport': 'basketball', 'coach': 'Joe Smith', 'wins': 15, 'losses': 5}

我们甚至可以从 JSON 对象中提取注释的值:this is my comment

import json
 
with open("data.json", mode="r") as j_object:
   data = json.load(j_object)
   print(data["_comment1"])

注意这个注释只是开发人员眼中的注释——而不是电脑眼中的。

一种不同形式的注释

这种 JSON 注释方法与 Python 等编程语言中的注释不同,后者通常在程序运行时被忽略。

# Here's my comment
word = "house"
for letter in word:
   print(letter)

当我们运行上面的 Python 程序时,得到单词“ house”,但是看不到评论,它被忽略了。

可以考虑的注释方法

JSMin 是另一种方法。

该工具可从 JavaScript 文件中删除多余的空格和注释,它也适用于 JSON 文件。JSMin 在解析之前从 JSON 文件中删除注释。

所以,在 JSON 文件中添加注释有不同的方法。尽管它们不是完美的解决方案,但至少可以把你需要的文件放在代码中。

原文:JSON Comment Example — How to Comment in JSON Files,作者:Amy Haddad