我可以在json文件里使用注释吗? 如果是的话,怎么写?


当前回答

是的,你可以在json档案中发表评论。

{
    "": "Location to post to",
    "postUrl": "https://example.com/upload/",

    "": "Username for basic auth",
    "username": "joebloggs",

    "": "Password for basic auth (note this is in clear, be sure to use HTTPS!",
    "password": "bloejoggs"
}

a 批注只是描述一组代码或配置的目的的文字片段。 由于您可以在 Json 中指定多次密钥, 您可以这样做 。 它在方法上是正确的, 唯一的取舍是您在字典中将有一个空密钥, 并有一些垃圾值( 您可以修饰... ) 。

但我只看到我正在研究的一个项目 是这样做的, 我觉得这是一个非常干净的方法来做它。 享受吧!

其他回答

虽然json不支持评论,jsonc支持。

使用 jsonc 剖析器 。 抱歉, 如果回答为时已晚, 请将您的文件命名为“. jsonc ” 扩展名, 并使用 jsonc 剖析器 。

jsonWithComments.jsonc

例如:

{
    // This is a comment!
    "something": "idk"

}

如果这还不清楚, 我认为机器人是奇怪的。 请在投票前先试一下, 这个问题没有帮助 。

如果您的文本文件, 即json 字符串, 将会被某个程序读取, 使用前要删除 c 或 c++ 样式的注释会有多困难 ?

回答:如果你这样做,它将是一个班轮。那么json文件可以用作配置文件。

考虑使用 aml 。 它几乎是 json 的超级集( 几乎所有有效的json 都是有效的 aml ) , 它允许评论 。

免责声明:这太愚蠢了

实际上有一种方式可以添加评论,并且不超出规格(不需要额外的分析师)。 它不会在不作任何区分的情况下产生人类可读的评论。

您可滥用下列手段:

允许在任何象征性之前或之后使用微小的白色空间。 白空间是以下一个或多个代码点的任何序列: 字符制表( 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 插件来编码/ 解码在苍蝇上) 。

我从来没有尝试过这个, 原因很明显,你也不应该。

json speces 并不支持评论, 但是您可以将评论写成密钥来解决这个问题, 比如这样 。

{
  "// my own comment goes here":"",
  "key1":"value 1",

  "// another comment goes here":"",
  "key 2": "value 2 here"
}

我们使用评论文本作为关键, 以确保它们( 几乎) 是独一无二的, 它们不会打破任何解析器。 如果有些评论不是独一无二的, 请在结尾处添加随机数字 。

如果您需要分析任何处理中的评论, 比如剥除这些评论, 您可以用文字填充注释值, 表示它是一个注释 , 比如 :

   {
  "// my own comment goes here" : "_comment",
  "key1":"value 1",

  "// another comment goes here" : "_comment",
  "key 2": "value 2 here"
} 
  

以此方式, 分析者可以找到所有的评论并处理它们 。