让你的 JSON 支持注释

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。
JSON 最初诞生的目的是在 WEB 开发时,便于服务端与客户端的数据交互。因为 JSON 在大部分情况下都是由程序生成和解析,所以 JSON 在最初的设计的时候,并没有注释。

随着 Node.js 的兴起,JSON 开始被广泛用于做配置文件。JSON 的语法简单直观,基本上没用学习成本,用于配置文件是非常合适的。但是有个很大的问题是 JSON 不支持注释,而在配置文件中,注释是非常重要的。在 Node.js 开发过程中,经常感到不爽,有时候想关闭某个配置项,还必须把这一行删掉,而不能注释。

所以我觉得自己来写过扩展,让 JSON 来支持注释。Github 地址 https://github.com/numbcoder/json-comments

安装

$ npm install json-comments

用法

直接用 require JSON 文件

// 在程序的入口初始化一次就行了
require('json-comments');

// 然后就可以通过 `require` 来引入带注释的 JSON 文件了
var config = require('./config')

配置文件 config.json

{
  // this is host
  "host": "127.0.0.1",

  "port": 3000, /* port */

  "url": "https://github.com/numbcoder", //github url

  /*
  * Multi-line comments
  */
  "username": "abc@gmail.com"
}

也可以用来解析带注释的 JSON 字符串

var JSONC = require('json-comments');
var fs = require('fs');

var content = fs.readFileSync('./config.json', 'utf8');
// parse JSON String
var config = JSONC.parse(content);

console.log(config);

也可以用来压缩 JSON 字符串(去掉注释、空格和换行)

var JSONC = require('json-comments');
var fs = require('fs');

var content = fs.readFileSync('./config.json', 'utf8');

// remove comments and spaces from JSON String
var JsonStr = JSONC.minify(content);

** Contributions are welcome! **

@2013-11-24 00:00