Node.jsでCSV形式からJSON形式に変換したい場合は下記のように記述します。
まず、npmでcsvtojsonをインストールする必要があります。
1 |
npm install csvtojson |
script.js
1 2 3 4 5 6 7 8 9 10 |
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
1 2 3 4 |
フィールド01,フィールド02,フィールド03,フィールド04,フィールド05 あ,い,う,え,お か,き,く,け,こ さ,し,す,せ,そ |
sample.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[ { "フィールド01": "あ", "フィールド02": "い", "フィールド03": "う", "フィールド04": "え", "フィールド05": "お" }, { "フィールド01": "か", "フィールド02": "き", "フィールド03": "く", "フィールド04": "け", "フィールド05": "こ" }, { "フィールド01": "さ", "フィールド02": "し", "フィールド03": "す", "フィールド04": "せ", "フィールド05": "そ" } ] |
読み込むCSVファイルを指定 :
1 |
require("fs").createReadStream("./sample.csv").pipe(converter); |
JSON形式に変換して保存 :
1 2 3 4 |
converter.on("end_parsed", function (jsonArray) { fs.writeFile('./sample.json', JSON.stringify(jsonArray, null, ' ')); console.log("JSON形式で出力されました"); }); |
前に、VBAでこの変換ツールを作ったことがあるんですが、csvtojsonモジュールを利用するといとも簡単にCSVからJSONに変換できます。すごく便利です。VBAでわざわざ作った意味は・・・。もっと早くnode.jsと出会うべきでありました。
- 参考文献