csvfromjson

1.0.1 • Public • Published

CSV From JSON

Converts JSON into CSV
See "options" in the reference below. If you need a deep unwind array functionality, you can flatten your data by using JSONRemap module.

Install

Use NPM:

$ npm install csvfromjson

or Mercurial:

$ hg clone ssh://hg@bitbucket.org/andreyh/csvfromjson

Usage example

let CSVFromJSON = require('csvfromjson');

let data = [
	{
		'String': 'test',
		'StringWithComma': 'comma,test',
		'Integer': 1,
		'Date': new Date(),
		'Outer': {
			'Nested': 'Nested 1'
		},
		'OuterArray': {
			'NestedArray': [
				'Nested Array Value 1',
				'Nested Array Value 2',
			]
		},
	},
	{
		'String': 'test',
		'StringWithComma': 'comma,test',
		'Integer': 1,
		'Date': new Date(),
		'Outer': {
			'Nested': 'Nested 2'
		},
		'OuterArray': {
			'NestedArray': [
				'Nested Array Value 3',
				'Nested Array Value 4',
			]
		},
	}
]

console.log('Test without options');
console.log('====================');
console.log(CSVFromJSON(data));

console.log('');

console.log('Test   with  options');
console.log('====================');
console.log(CSVFromJSON(data, {
	fields: [
		{
			key: 'String',
			title: 'String test'
		},
		{
			key: 'StringWithComma',
			title: 'String comma test'
		},
		{
			key: 'Integer',
			title: 'Integer Value'
		},
		{
			key: 'Date',
			title: 'Date ISO value',
		},
		{
			key: 'Outer.Nested',
			title: 'Nested Object',
		},
		{
			key: 'OuterArray.NestedArray',
			title: 'Nested Array',
		},
	],
	// separator: ',',
	// newLine: '\n',
	dateFormat: 'YYYY-MM-DD HH:mm:ss ZZ',
	isUTC: true,
	// outputFile: './test.csv',
	// isHeader: true,
}));

Output

Test without options
====================
String,StringWithComma,Integer,Date,Outer,OuterArray
test,"comma,test",1,Mon Sep 03 2018 14:47:39 GMT+0300 (Jerusalem Daylight Time),[object Object],[object Object]
test,"comma,test",1,Mon Sep 03 2018 14:47:39 GMT+0300 (Jerusalem Daylight Time),[object Object],[object Object]

Test   with  options
====================
String test,String comma test,Integer Value,Date ISO value,Nested Object,Nested Array
test,"comma,test",1,2018-09-03 11:47:39 +0000,Nested 1,"Nested Array Value 1,Nested Array Value 2"
test,"comma,test",1,2018-09-03 11:47:39 +0000,Nested 2,"Nested Array Value 3,Nested Array Value 4"

Documentation

Module call:
CSVFromJSON(data, options)

Module parameters:

  1. data

    An array of json objects

  2. options (optional)

    An object with properties
    All options are optional

    • fields - Array of objects or strings. By default the module gets them from data
    • separator - String, separator between fields in output CSV. Default value - ,
    • newLine - String, End of line char. Default is OS dependent
    • dateFormat - String, Formats date values by given pattern. Examples here: Moment format
      By default, no formatting
    • isUTC - Boolean, Date is shown in UTC timezone. By default, false
    • outputFile - String, file name for output
    • isHeader - Boolean, Adds a CSV header if true. By default, true

License

MIT (see License)

Readme

Keywords

Package Sidebar

Install

npm i csvfromjson

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

26.4 kB

Total Files

14

Last publish

Collaborators

  • andreyh