LoginSignup
4
3

More than 5 years have passed since last update.

JSONのテンプレートエンジンとしてnode.jsを使う

Posted at

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をよしなに扱ってくれる機能があれば、そんなにつらく感じないのですけどね。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3