最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【部分解决】Json中添加注释

JSON crifan 8605浏览 0评论

【问题】

通过json文件给python脚本传递参数,但是希望每个参数都有对应的注释,以方便使用者知道该参数的确切含义。

问题转化为给json中添加注释。

【解决过程】

1.网上找了json的官网JSON,没看到关于添加注释的说明。

就像某人说的,json的出现,本身就是为了压缩,减少数据量,所以理论上就不支持注释,也是可以理解的。

2.参考:Json文件如何加注释

去尝试:

{

}

// outside of json comment test –> no work

 

// begin of json comment test –> no work

{

}

的结果,也还是无效。

其他的,也试过了:

/* comments here */

都不行。

3.参考:javascript – Can I comment a JSON file? – Stack Overflow

得到一个妥协的办法,那就是,把需要添加的注释,当成json中的某个key和value,就像普通的数据一样,比如那位给出的例子:

{ 
   "_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" 
            } 
         } 
      } 
   } 
} 

目前看来,除此之外,也没啥其他的好办法了。

4.另外,也看到这里:

http://blog.getify.com/json-comments/

在讨论,给json组织建议,添加对应的spec规范说明,希望支持:

json的decoder编码出来的数据,不包含对应的comment,但是encoder应该支持comments

然后希望对应的comments的格式是

// single line comment

/* multi line comments */

之类的。

然后在传输数据过程中,则不需要传输这些comments。

等等讨论和建议。个人觉得还是蛮合理的,只是此刻,我用的python 2.7中的json,还是不支持decode带comments的json啊。。。。

【总结】

目前我这里的Python 2.7中的json,不支持类似于//xxx和/* xxx*/的注释,暂时的妥协办法只能是,把需要添加的注释,当做数据,写入到json里面。虽然效率很低,但是也只能这样了。

希望以后json的encoder和decoder支持对应的带comments的编解码。

转载请注明:在路上 » 【部分解决】Json中添加注释

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 悲剧!
    御宅暴君9年前 (2016-03-07)回复
85 queries in 0.176 seconds, using 22.18MB memory