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に変換されます。
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と出会うべきでありました。
- 参考文献
csvtojson