JSON中不能加注释

  今天犯了一个白痴级的错误,那就是向JSON数据文件中,很多行后面添加注释(Comment,//)。

  导致Node.js程序不能读取JSON文件,Server启动失败。

  Debug时间蛮久,经同事提醒才发现。

  

  错误既然发生了,不能稀里糊涂地过去。于是查资料,为什么不能在JSON数据中添加注释?最终找到源头。

  来自Javascript大神Douglas Crockford的答案,从Google+中获得:

  

  原来JSON中不能有注释的原因,是他注意到很多人利用注释来制定解析规则,这破坏了互操作性(Interoperability)。因此大神将其剔除。

  链接:https://plus.google.com/+DouglasCrockfordEsq/posts/RK8qyGVaGSr

  

  但其实有些不严格的JSON解析器还是支持注释的,例如我将加过注释的JSON文件用Javascript解析器JSHint来扫描(Vim版插件),以及用在线JSON解析来解析,也都没有问题。这也是为什么我Debug很久才在同事的提醒下找到原因。

  下次谨记。

 

  

  Kevin Song,2015年3月18日

                                                          

转载于:https://www.cnblogs.com/KevinSong/p/4348607.html

### 如何在JSON文件中添注释 尽管标准的JSON语法不支持注释,但在实际开发过程中,有时确实需要对数据结构进行解释或标注。以下是几种常见的处理方式: #### 方法一:通过冗余字段模拟注释 一种常见的方式是在JSON对象中引入额外的键来表示注释内容。这些键通常以特定前缀命名以便于识别和忽略[^3]。例如: ```json { "id": 128, "_id.comment": "这是用户的唯一标识", "page": 10, "_page.comment": "当前显示页面编号", "pageSize": 15, "_pageSize.comment": "每页展示的最大条目数量" } ``` 这种方法的优点在于保持了原始JSON的有效性,同时提供了足够的上下文信息供开发者理解。 #### 方法二:采用JSON方言扩展功能 部分JSON变体(如JSON 5、Hjson 和 HOCON)允许直接嵌入注释到文件内部[^2]。下面是一个基于 Hjson 的例子: ```hjson // 这里定义了一个用户的基本资料 user: { id: 128 // 用户ID name: 'John Doe' /* 姓名 */ } ``` 需要注意的是,虽然这种方式更直观易读,但由于其偏离了传统意义上的JSON格式,在跨平台交互时可能会遇到兼容性障碍。 #### 方法三:利用外部文档形式补充说明 当面对复杂的业务场景或者频繁变动的需求时,单独维护一份详尽的技术手册可能是更好的选择。这样不仅可以减少因修改源码而带来的风险,还能让团队成员更容易获取最新版本的信息[^4]。 --- ### 替代方案总结表 | **类别** | **特点** | **适用场合** | |-------------------|--------------------------------------------------------------------------------------------|---------------------------------------| | 冗余字段法 | 不改变原有结构;增辅助性的描述型节点 | 数据量较小且改动频率低的情况 | | 使用JSON方言 | 支持单行或多行风格的传统编程语言式样注解 | 封闭环境下的专用程序间通信 | | 外部链接/附件 | 提供超链接指向更详细的指导材料 | 跨部门协作项目 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值