Skip to content

olibaron/gulp-csv-to-json

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gulp-csv-to-json

Generate static JSON from CSV key/value data.

Getting Started

This plugin requires Gulp ~0.4.0

If you haven't used Gulp before, be sure to check out the Getting Started guide, as it explains how to create a Gulpfile as well as install and use Gulp plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install gulp-csv-to-json --save-dev

The "csvjson" task

Overview

This task builds JSON structures from key/value data defined in CSV format. Multiple JSON resources can be defined per CSV document.

The following CSV document:

key bob sue
name Bob Sue
sex male female
age 54 24

Will generate two JSON resources:

// dest/bob.json
{
	"name": "Bob",
	"sex": "male",
	"age": 54
}

// dest/sue.json
{
	"name": "Sue",
	"sex": "female",
	"age": 24
}

In your project's Gulpfile, add a section named csvjson to the data object passed into gulp.initConfig().

var gulp = require('gulp');
var csv2json = require('gulp-csv-to-json');
var options = {};
gulp.task('csvToJson', function () {
    return gulp
    	.src('src/**/*.csv')
        .pipe(csv2json(options))
        .pipe(gulp.dest('dist'));
});

Options

options

Type: Object

CSV parser options: see node-csv-parse#parser-options.

options = {
	auto_parse : true
};

options.processValue

Type: Function

Hook to process field value.

options = {
	processValue: function (key, value) {
		return value;
	}	
};

CSV format

The expected format is one row per value, with resource names defined in the first row, and field keys in the first column.

key resource-a
key-one value-one
key-two value-two

Object hierarchy

Object hierarchy is expressed with dot notation in the key.

The following data:

key bob
person.name Bob
person.sex male
person.age 54

Will generate:

{
	"person": {
		"name": "Bob",
		"sex": "male",
		"age": 54
	}
}

Implicit array syntax

Arrays of values can be implicitly defined by duplicating keys.

The following data:

key list
shopping.day Sunday
shopping.list fruit
shopping.list candy
shopping.list pasta
shopping.list spinach

Will generate:

{
	"shopping": {
		"day": "Sunday",
		"list": ["fruit", "candy", "pasta", "spinach"]
	}
}

Explicit array syntax

Arrays of values can be explicitly defined by using integer keys.

The following data:

key list
list.0.0 fruit
list.0.1 candy
list.1.0 pasta
list.1.1 spinach

Will generate:

{
	"list": [
		["fruit", "candy"],
		["pasta", "spinach"]
	]
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published