nodeJS read csv to JSON,使用 csvtojson

目標:

  1. 讀取 csv 檔案
  2. 解析 csv 成 JSON 檔案
  3. 儲存 JSON 檔案

開始之前:

我們將使用 npm 上面的一個模組 csvtojson 來幫助我們將 csv 解析成 JSON.

Installation

1
npm install csvtojson --save

一個簡單的 csv to json 範例程式架構如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// require nodeJS 內建 File System 模組.
var fs = require('fs');
// csvtojson modules 宣告
var Converter = require("csvtojson").Converter;
var newConverter = new Converter({});
// csv 檔案位置/名稱,先存在變數中只是為了方便看 code.
var csvfile = 'my_csv_File.csv'
// JSON 檔案儲存名稱
var saveFileName = 'csvtojson.json';
// read from file
// 利用 fs 讀取 csv 檔案並交給 csvtojson 解析
fs.createReadStream( csvfile ).pipe( newConverter );
// end_parsed will be emitted once parsing finished
// 當 csvtojson 結束解析的時候
newConverter.on("end_parsed", function (jsonArray) {
// 可開啟這行在 Command Line 觀看 data 內容
// console.log(jsonArray); //here is your result jsonarray
// 對 jsonArray 做處理,寫你的 code
// 儲存成 JSON
// fs.writeFile 使用 File System 的 writeFile 方法做儲存
// 傳入三個參數( 存檔名, 資料, 格式 )
fs.writeFile( saveFileName, JSON.stringify( jsonArray ), 'utf8');
console.log('csv to JSON done !!');
});

小結:

常常在使用 Excel / google spreadsheet 做統計資料的時候,就在想是不是可以把這些資料做成 JSON 檔案,再去和其他 api 結合做出好玩的應用,當然有很多線上的功能可幫助我們完成同樣的動作,但是利用 nodeJS 來實作一方面可以學習 nodeJS 並瞭解 JavaScript 不只可以寫網頁同時感受 nodeJS 強大威力!

enjoy!!