LoginSignup
3
1

More than 5 years have passed since last update.

'gulp-csv2json'を使ってCSVをJSONに変換する方法

Posted at

'gulp-csv2json'の使い方を覚え書き。

インストール方法はこちらから
https://www.npmjs.com/package/gulp-csv2json

解説

やりたいこと

CSVをJSONにgulp4を使って変換させたい。。
(今回そのCSVはダブルクオートやクオートで囲われていない)

環境

  • 環境
    • OS: Windows7
    • nodeJS: 8.11.2
    • npm: 6.1.0
  • モジュール
    • gulp: 4.0.0
    • gulp-csv2json: 0.2.5
    • gulp-rename: 1.2.3

はしょっていますが、階層構造はこんなかんじです。

sample
  ├─ src/
  │  ├─ data/
  │  │  └─ csv/
  │  │        └─ *.csv
  │  │  
  │  └─ ...
  │     
  ├─ temp/
  ├─ dist/
  │
  ├─ .node_modules/
  ├─ .babelrc
  ├─ gulp.babel.js
  ├─ package-lock.json
  └─ package.json  

方法

gulpfile.babel.js
import gulp from 'gulp';
import babel from 'gulp-babel';
import csv2json from 'gulp-csv2json';
import rename from 'gulp-rename';

// csvをjsonへ変換
const makejson = () => {
  // csvの値がダブルクオートで囲まれていないのでfalse
  var csvParseOptions = {
    quote: false
  };

  return gulp.src('src/data/csv/*.csv')
        .pipe(csv2json(csvParseOptions))
        .pipe(rename({extname: '.json'}))
        .pipe(gulp.dest('src/data/json/'));
};
exports.makejson = makejson;

これでsrc/data/内にjsonディレクトリが生成されてjsonファイルが出力されます。
ポイントとしては引用符で囲われていないCSVはオプションでquote: falseにしてあげることです。

逆に、ダブルクオートで囲われている場合はオプションは必要ないです。
その他特別な文字で値が囲われている場合はbooleanではなく文字列として指定してあげればいいはずです。

パーサーオプションの一覧はこちら
http://csv.adaltas.com/parse/

ちなみに、importしたモジュール名とconstで宣言したタスク名は重複できないのでご注意ください。

3
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1