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


当前回答

2019年视觉演播室代码用户的实际答案是使用“jsonc”扩展名。

这是切合实际的,因为这是视像工作室代码所认可的延伸,表示“Json带评论”,请让我了解下文评论中的其他编辑/旁听者。

如果视觉演播室代码和其他编辑也加入本地对Json5的支持, 那将会是件好事, 但现在视觉演播室代码只包括“jsonc”的支持。

(我在张贴前搜索了所有答案,

其他回答

纯粹的答案是否定的。

但有些编辑和平台使用变通办法来补充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"
     }

注释不是官方标准,尽管有些分析者支持 c++- 风格的注释。

// Configuration options
{
    // Default encoding for text
    "encoding" : "UTF-8",

    // Plug-ins loaded at start-up
    "plug-ins" : [
        "python",
        "c++",
        "ruby"
        ],

    // Tab indent size
    "indent" : { "length" : 3, "use_space": true }
}

jsonlint 不验证这一点 。 因此, 批注是解析器特定的扩展名, 而不是标准 。

另一本书是Json5。

取代json Toml的替代品。

另一种选择是jsonc。

Nlohmann/json的最新版本有选择的支持,

是的,你可以有评论。 但我不建议任何上述理由。

我做了一些调查,我发现所有json都要求使用 json.parse 方法的方法。所以我找到了一个解决办法: 我们可以控制或修补猴子绕着json.parse。

注:仅用节点/js 测试;-)

var oldParse = JSON.parse;
JSON.parse = parse;
function parse(json){
    json = json.replace(/\/\*.+\*\//, function(comment){
        console.log("comment:", comment);
        return "";
    });
    return oldParse(json)
}

json 文件 :

{
  "test": 1
  /* Hello, babe */
}

还有其他与json兼容的图书馆,这些图书馆支持评论。

一个突出的例子就是“hashcorp语言”(hcl),它是由那些制造流浪者、包装者、领事和保险库的人共同写的。

至少这是我在Json. org的一眼 所经历的

json的语法在那一页上被视觉化了。