dayjournal memo

Total 975 articles!!

Node.js #011 – CSV形式からJSON形式に変換

Yasunori Kirimoto's avatar

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と出会うべきでありました。



book

Q&A