引言
如果你无法在 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