Node.jsでCSV形式からJSON形式に変換したい場合は下記のように記述します。


まず、npmでcsvtojsonをインストールする必要があります。



npm install csvtojson


script.js


var fs = require('fs');
var Converter = require("csvtojson").Converter;
var converter = new Converter({});

converter.on("end_parsed", function (jsonArray) {
fs.writeFile('./sample.json', JSON.stringify(jsonArray, null, ' '));
console.log("JSON形式で出力されました");
});

require("fs").createReadStream("./sample.csv").pipe(converter);


script.jsを実行すると下記のようにsample.csvがsample.jsonに変換されます。

node.js_011_01


sample.csv


フィールド01,フィールド02,フィールド03,フィールド04,フィールド05
あ,い,う,え,お
か,き,く,け,こ
さ,し,す,せ,そ


sample.json


[
{
"フィールド01": "あ",
"フィールド02": "い",
"フィールド03": "う",
"フィールド04": "え",
"フィールド05": "お"
},
{
"フィールド01": "か",
"フィールド02": "き",
"フィールド03": "く",
"フィールド04": "け",
"フィールド05": "こ"
},
{
"フィールド01": "さ",
"フィールド02": "し",
"フィールド03": "す",
"フィールド04": "せ",
"フィールド05": "そ"
}
]


読み込むCSVファイルを指定 :


require("fs").createReadStream("./sample.csv").pipe(converter)


JSON形式に変換して保存 :


converter.on("end_parsed", function (jsonArray) {
fs.writeFile('./sample.json', JSON.stringify(jsonArray, null, ' '));
console.log("JSON形式で出力されました");
})


前に、VBAでこの変換ツールを作ったことがあるんですが、csvtojsonモジュールを利用するといとも簡単にCSVからJSONに変換できます。すごく便利です。VBAでわざわざ作った意味は・・・。もっと早くnode.jsと出会うべきでありました。




Q&A