0.0.3 • Published 8 years ago

node-csvjson v0.0.3

Weekly downloads
4
License
ISC
Repository
github
Last release
8 years ago

node-csvjson

Generate static JSON from CSV key/value data.

Getting Started

Using npm:

npm install node-csvjson --save-dev

Using yarn:

yarn install node-csvjson --save

Usage

Short version

require('node-csv-json')('directory containing csv files');

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:

keybobsue
nameBobSue
sexmalefemale
age5424

Will generate two JSON resources:

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

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

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.

keyresource-a
key-onevalue-one
key-twovalue-two

Object hierarchy

Object hierarchy is expressed with dot notation in the key.

The following data:

keybob
person.nameBob
person.sexmale
person.age54

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:

keylist
shopping.daySunday
shopping.listfruit
shopping.listcandy
shopping.listpasta
shopping.listspinach

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:

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

Will generate:

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

node-csvjson

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago