JSONでケツカンマがあったらなあ、コメントを入れられたらなぁと思うことありませんか?僕はpackage.json
内のnpm scriptsをいじっているときに頻繁に思います。
そんな我々の思いを受けてできたプロジェクトがあります。その名もJSON5です。今回はこれを紹介したいと思います。
JSON5とは?
JSON5とは様々な仕様が追加されたJSONのスーパーセットです。たとえば以下のような仕様が追加されます。
- 配列・オブジェクトのケツカンマ
- シングルクォートによる文字列
- 単行・複数行のコメント
- 16進法による数値表記
JSON5でのパース・符号化
npmでインストールするか、scriptファイルを読み込むことで使えます。
$ npm install json5
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
パースも符号化もJSONとほとんど同様です。
JSON5.parse(json5string); JSON5.stringify(object);
JSON5.stringify()
では、文字列をクォートで囲むか指定できる以外はほぼJSON.stringify()
と変わらないようです。
どこで使われているか
JSON5に依存しているnpmパッケージを見てみると、@babel/core
やvueify
、parcel
などが対応しているようです。
ちなみにtsconfig.jsonでもケツカンマができますが、JSON5をサポートしているのではなく、設定ファイルを読み込むときに独自のJSONパーサーを使っているためだそうです(参考: tsconfig.json isn't strict JSON, what now? : typescript)。