JSONって人類が手動で書く形式じゃないと思うんですよね。。
末尾カンマは許されないし、ダブルクォーテーションでくくらないといけないし、コメントも書けない。つらい。
正直なところ、普通のJavaScriptの方が構文がシンプルです。
なので、node.jsのプログラムで書いておいて、プリプロセスすれば便利なのではないか、と思いました。
foo.json.js
var data = {
foo: "あいうえお",
// 途中にコメント書ける
baa: [1,2,3,],
moo: [1,2,3,4].reduce(function(a,b){
return a + b;
}),
// ちょっとした処理も書けるし
// node.jsのJavaScriptだから安心してカンマつけられる
};
console.log(JSON.stringify(data, null, 2));
JSON化も一発ポン。
$ node foo.json.js > foo.json
$ cat foo.json
{
"foo": "あいうえお",
"baa": [
1,
2,
3
],
"moo": 10
}
まあ、バージョン管理システム上どうしたらいいんだろうとか、JSON側をいじってしまいjs側が古いままで上書きしちゃったーとか、色々考えることが増えるのでしょうけど。
言いたかったのは、YAML/JSON5/CSON/その他...で書いてプリプロセスしてもいいのでしょうが、node.jsだけで変換できる手軽さを考えると、ちょっとしたJSONならJSで書いちゃえばいいんじゃないの?というところでした。
npmなどのように、コマンド側にJSONをよしなに扱ってくれる機能があれば、そんなにつらく感じないのですけどね。