This module makes easy to convert JSON to CSV and its very customizable.
Installation command is npm install jsonexport.
Run tests with npm test.
var jsonexport = ; ;Global installation command is npm install -g jsonexport.
Convert JSON to CSV using cat data.json | jsonexport or jsonexport data.json
Usage: jsonexport <JSON filename> <CSV filename>
var jsonexport = ;var fs = ; var reader = fs;var writer = fs; reader;var jsonexport = ; var contacts = name: 'Bob' lastname: 'Smith' name: 'James' lastname: 'David' name: 'Robert' lastname: 'Miller' name: 'David' lastname: 'Martin'; ;name,lastname
Bob,Smith
James,David
Robert,Miller
David,Martin
var jsonexport = ; var contacts = name: 'Bob' lastname: 'Smith' family: name: 'Peter' type: 'Father' name: 'James' lastname: 'David' family: name: 'Julie' type: 'Mother' name: 'Robert' lastname: 'Miller' family: null location: 123132144214 name: 'David' lastname: 'Martin' nickname: 'dmartin'; ;lastname,name,family.type,family.name,nickname,location
Smith,Bob,Father,Peter,,
David,James,Mother,Julie,,
Miller,Robert,,,,1231,3214,4214
Martin,David,,,dmartin,
var jsonexport = ; var stats = cars: 12 roads: 5 traffic: 'slow'; ;cars,12
roads,5
traffic,slow
var jsonexport = ; var stats = cars: 12 roads: 5 traffic: 'slow' speed: max: 123 avg: 20 min: 5 size: 1020; ;cars,12
roads,5
traffic,slow
speed.max,123
speed.avg,20
speed.min,5
size,10;20
In order to get the most of out of this module, you can customize many parameters and functions.
headerPathString - String Used to create the propriety path, defaults to . example contact: {name: 'example} = contact.namefillGaps - Boolean Set this option if don't want to have empty cells in case of an object with multiple nested items (array prop), defaults to false Issue #22headers - Array Used to set a custom header order, defaults to [] example ['lastname', 'name']rename - Array Used to set a custom header text, defaults to [] example ['Last Name', 'Name']rowDelimiter - String Change the file row delimiter
, (cvs format).\t for xls format.; for (windows excel .csv format).textDelimiter - String The character used to escape the text content if needed (default to ")endOfLine - String Replace the OS default EOL.mainPathItem - String Every header will have the mainPathItem as the base.arrayPathString - String This is used to output primitive arrays in a single column, defaults to ;booleanTrueString - String Will be used instead of true.booleanFalseString - String Will be used instead of false.includeHeaders - Boolean Set this option to false to hide the CSV headers.undefinedString - String If you want to display a custom value for undefined strings, use this option. Defaults to .verticalOutput - Boolean Set this option to false to create a horizontal output for JSON Objects, headers in the first row, values in the second.handleString - Function Use this to customize all Strings in the CSV file.handleNumber - Function Use this to customize all Numbers in the CSV file.handleBoolean - Function Use this to customize all Booleans in the CSV file.handleDate - Function Use this to customize all Dates in the CSV file. (default to date.toLocaleString)Lets say you want to prepend a text to every string in your CSV file, how to do it?
var jsonexport = ; var options = { return 'Hey - ' + string; }; ;The output would be:
lang,Hey - Node.js
module,Hey - jsonexport