zoukankan      html  css  js  c++  java
  • JSON文件加注释的7种方法

     

    JSON文件加注释的7种方法

    缺省不能加注释,现实有需求

    根据JSON规范(http://www.json.org, RFC 4627, RFC 7159),不支持注释。JSON规范之所以不允许加注释,主要是防止:过多的注释,影响了文件本身的数据载体的目的。

    但是有些场合,尤其是配置文件,还是希望能够帮助说明数据项的含义。一方面有利于描述接口,另一方面能够减少重复性的文档。这在软件快速开发实践中有一定意义。

    JSON中加注释具有现实需求

    以下介绍几种给JSON文件加注释的方法。

    方法一:直接用json-schema,使用规范中的注释字段

    在json-schema规范中数据结构定义JSON中有一些说明性字段(Annotation),这些字段对应的key有title, description, $comment, default, examples等,可以在这些字段(一般1个即可)中填写某个数据项的含义与用法。这个方案的优点是功能强大,缺点是json-schema与json数据本身还是分离的。

    http://json-schema.org/ ,规范网站

    https://github.com/epoberezkin/ajv ,著名Javascript实现

    方法二:使用JSON5规范

    JSON5规范允许在JSON文件中加入注释:单行注释,多行注释均可

    可以使用npm的json5库,用法与JSON库类似。JSON5规范见:https://json5.org/

    json5格式直接支持注释

    方法三:使用去注释的库

    可以使用npm的strip-json-comments库。支持去掉行注释与块注释,然后再可以用标准的JSON.parse解析strip-json-comments库见:https://github.com/sindresorhus/strip-json-comment

    方法四:使用约定俗成的key作为注释字段

    如以"//"作为注释的key. 但是如果有多个以"//"为key的属性,是否符合协议的?答案是:协议理论上不允许。实现上(几乎?)所有的JS环境都允许,解析之后,只保留最后一项常用的类似key还有: "_comment", "#####"("#"个数自定)等

    特殊约定的key可以作为注释的标志

    方法五:使用重名key作为注释。

    即每个key,使用两次,第1次做注释,第2次做实际属性。原理在方法四中已经介绍:协议理论上不允许。实现上(几乎?)所有的JS环境都允许,解析之后,只保留最后一项

    同个key使用2次,1次作为注释

    方法六:使用字段key加前缀做注释key

    例如加入属性的key是xyz, 则?xyz作为注释字段。这样的好处是,没有重名的字段,完全符合JSON协议。常用的前缀还有"#", "_", "__"等

    给key加前缀作为注释的标志

    方法七:使用支持注释的配置文件管理模块

    如npm中rc库(见:https://github.com/dominictarr/rc),或者config(见:https://github.com/lorenwest/node-config)

    缺点是,只能用于配置相关的Json文件。使用方法需要依照模块的要求。

  • 相关阅读:
    noip2012 同余方程
    bzoj1477 poj1061 青蛙的约会
    Nginx 从入门到放弃(五)
    Nginx 从入门到放弃(四)
    Nginx 从入门到放弃(三)
    Nginx 从入门到放弃(二)
    Nginx 从入门到放弃(一)
    python三大神器之fabric
    Docker 学习(一)
    linux就该这么学 第一天学习笔记
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/11987144.html
Copyright © 2011-2022 走看看