我可以在json文件里使用注释吗? 如果是的话,怎么写?
当前回答
纯粹的答案是否定的。
但有些编辑和平台使用变通办法来补充json的评论。
1. 今天,大多数编辑都有内置选项和扩展选项,以对json文件添加评论。 (例如:- vs code 也有一个带有评论(jsonc) 模式/ vs code 的json 也有一个漂亮的扩展)
在 vscode 中激活 jsonc 模式的链接
2. 有些平台提供内置方式来补充评论(简洁json)。 (例如:-在消防基地,我可以对消防基地.jsons发表一段没有问题的评论。)
{
"hosting": {
"headers": [
/*{
"source": "*.html",
"headers": [
{
"key": "Content-Security-Policy",
"value": "default-src 'self' ..."
}
]
},*/
]
}
}
3. 在你自己的json 解析方法中,您可以设置一个预定义的密钥名作为注释。
包括:-
{
"comment" : "This is a comment",
"//" : "This also comment",
"name" : "This is a real value"
}
其他回答
json 曾经支持评论,但被滥用,从标准中删除。
是从杰森的创造者那里降示的:
我删除了Json的评论, 是因为我看到有人利用他们来维持分解指令, 这种做法会破坏互操作性。 我知道,
json官方网站位于json.org.json被国际电子公司界定为一项标准。 总是有请愿程序要求修订标准。 出于若干原因,说明不可能加入json标准。
json 被设计成一种容易逆向工程(人类割除)的 xml 替代物。 它被简化到无需附加说明的地步。 它甚至不是标记语言。 目标是稳定性和互操作性。
任何理解目标方向“has-a”关系的人,都能理解任何json结构,这就是整个点。这只是一个带有节点标记(键/价值对)的定向环绕图(dag),这是一个近乎普遍的数据结构。
仅此说明要求的可能是“//这些是标记”。 关键名称可以按要求提供信息,允许任意的语义性。
任何平台都可以用几行代码分析json。 xml 需要复杂的 oo 图书馆, 在许多平台上都是不可行的 。
说明只会降低json 的互操作性。 没有什么可以补充的了, 除非您真正需要的是一个标记语言( xml) , 并且不关心您持续的数据是否容易解析 。
但Json的创造者也指出, js一直支持评论:
插入所有您喜欢的评论。 然后通过 Jsmin 管道, 然后再把它交给您的 Json 采摘师 。
我刚刚找到了"咕噜咕噜咕噜咕噜声"
“从json那里提取评论, 让你在json档案中使用评论!”
{
// Rainbows
"unicorn": /* ❤ */ "cake"
}
没有。
json is only data. 如果您包含一个注释, 那么它也必须是数据 。
您可以有一个名为“_comment”(或某物)的指定数据元素,该元素应该被使用json数据的应用程序忽略。
您也许最好在生成/接收json的进程中得到评论,因为他们应该知道json数据的预发内容,或者至少知道它的结构。
但如果你决定:
{
"_comment": "comment text goes here...",
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
至少这是我在Json. org的一眼 所经历的
json的语法在那一页上被视觉化了。
免责声明:这太愚蠢了
实际上有一种方式可以添加评论,并且不超出规格(不需要额外的分析师)。 它不会在不作任何区分的情况下产生人类可读的评论。
您可滥用下列手段:
允许在任何象征性之前或之后使用微小的白色空间。 白空间是以下一个或多个代码点的任何序列: 字符制表( u+0009)、 线性种子( u+000a)、 运输返回( u+000d) 和空间( u+0020)。
黑客方式, 您可以滥用此选项添加注释 。 例如 : 开始并用标签结束您的评论 。 在 base 3 编码注释, 并使用其他空白字符来代表它们 。 例如 。
010212 010202 011000 011000 011010 001012 010122 010121 011021 010202 001012 011022 010212 011020 010202 010202
(在Ascii中为3号基数你好),但不使用0个空间,而是用于1条线路上网和2条运输回程。
这将只留下许多无法读取的白色空间( 除非您用一个 ide 插件来编码/ 解码在苍蝇上) 。
我从来没有尝试过这个, 原因很明显,你也不应该。
推荐文章
- 在ASP中设置Access-Control-Allow-OriginNet MVC -最简单的方法
- JWT vs cookie用于基于令牌的身份验证
- JQ:选择多个条件
- 什么是HTTP中的“406-不可接受的响应”?
- 有没有办法注释掉.ASPX页面中的标记?
- ASP。NET Core返回带有状态码的JSON
- 我如何添加环境变量启动。VSCode中的json
- PostgreSQL返回JSON数组的结果集?
- HTTP POST在Java中使用JSON
- 如何指定杰克逊只使用字段-最好是全局
- jQuery为ajax请求返回“parsererror”
- 检查Postgres JSON数组是否包含字符串
- 将bash变量传递给jq
- 在$.ajax()中将数组传递给ajax请求
- 转换JSON字符串到c#对象