csvfromjson
v1.0.1
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](https://www.npmjs.com/package/jsonremap) module.
Downloads
1
Readme
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://[email protected]/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:
data
An array of json objects
options (optional)
An object with properties
All options are optionalfields
- Array of objects or strings. By default the module gets them from dataseparator
- String, separator between fields in output CSV. Default value -,
newLine
- String, End of line char. Default is OS dependentdateFormat
- String, Formats date values by given pattern. Examples here: Moment format
By default, no formattingisUTC
- Boolean, Date is shown in UTC timezone. By default, falseoutputFile
- String, file name for outputisHeader
- Boolean, Adds a CSV header if true. By default, true
License
MIT (see License)