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文件。使用方法需要依照模块的要求。

posted @   kelelipeng  阅读(24076)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示