Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

JSON5ならケツカンマができる!

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/corevueifyparcelなどが対応しているようです。

ちなみにtsconfig.jsonでもケツカンマができますが、JSON5をサポートしているのではなく、設定ファイルを読み込むときに独自のJSONパーサーを使っているためだそうです(参考: tsconfig.json isn't strict JSON, what now? : typescript)。

参考