This project is not dependent on others packages or libraries.
- Description
- Prerequisites
- Install npm convert-csv-to-json package
- Usage
- Development
- License
- Buy me a Coffee
Converts csv files to JSON files with Node.js.
Give an input file like:
first_name | last_name | gender | age | zip | registered | |
---|---|---|---|---|---|---|
Constantin | Langsdon | [email protected] | Male | 96 | 123 | true |
Norah | Raison | [email protected] | Female | 32 | false |
e.g. :
first_name;last_name;email;gender;age;zip;registered
Constantin;Langsdon;[email protected];Male;96;123;true
Norah;Raison;[email protected];Female;32;;false
will generate:
[
{
"first_name": "Constantin",
"last_name": "Langsdon",
"email": "[email protected]",
"gender": "Male",
"age": "96",
"zip": "123",
"registered": "true"
},
{
"first_name": "Norah",
"last_name": "Raison",
"email": "[email protected]",
"gender": "Female",
"age": "32",
"zip": "",
"registered": "false"
}
]
NPM (see Installing Npm).
Go to NPM package convert-csv-to-json.
Install package in your package.json
$ npm install convert-csv-to-json --save
Install package on your machine
$ npm install -g convert-csv-to-json
let csvToJson = require('convert-csv-to-json');
let fileInputName = 'myInputFile.csv';
let fileOutputName = 'myOutputFile.json';
csvToJson.generateJsonFileFromCsv(fileInputName,fileOutputName);
let csvToJson = require('convert-csv-to-json');
let json = csvToJson.getJsonFromCsv("myInputFile.csv");
for(let i=0; i<json.length;i++){
console.log(json[i]);
}
firstName;lastName;email;gender;age;birth;sons
Constantin;Langsdon;[email protected];Male;96;10.02.1965;*diego,marek,dries*
Given the above CSV example, to generate a JSON Object with properties that contains sub Array, like the property sons
with the values diego,marek,dries you have to call the function parseSubArray(delimiter, separator)
.
To generate the JSON Object with sub array from the above CSV example:
csvToJson.parseSubArray('*',',').getJsonFromCsv('myInputFile.csv');
The result will be:
[
{
"firstName": "Constantin",
"lastName": "Langsdon",
"email": "[email protected]",
"gender": "Male",
"age": "96",
"birth": "10.02.1965",
"sons": ["diego","marek","dries"]
}
]
As default the filed delimiter is the semicolon (;). You can define another field delimiter
by call the function fieldDelimiter(myDelimiter)
.
If you want that the field delimiter is a ~:
csvToJson.fieldDelimiter('~').getJsonFromCsv(fileInputName);
If you want that a number will be printed as a Number type, and values true or false is printed as a Boolean Type, use:
csvToJson.formatValueByType().getJsonFromCsv(fileInputName);
For example:
[
{
"first_name": "Constantin",
"last_name": "Langsdon",
"email": "[email protected]",
"gender": "Male",
"age": 96,
"zip": 123,
"registered": true
},
{
"first_name": "Norah",
"last_name": "Raison",
"email": "[email protected]",
"gender": "Female",
"age": 32,
"zip": "",
"registered": false
}
]
The property age is printed as
"age": 32
instead of
"age": "32"
The property registered is printed as
"registered": true
instead of
"registered": "true"
You can read and decode files with the following encoding:
- utf8:
csvToJson.utf8Encoding().getJsonFromCsv(fileInputName);
- ucs2:
csvToJson.ucs2Encoding().getJsonFromCsv(fileInputName);
- utf16le:
csvToJson.utf16leEncoding().getJsonFromCsv(fileInputName);
- latin1:
csvToJson.latin1Encoding().getJsonFromCsv(fileInputName);
- ascii:
csvToJson.asciiEncoding().getJsonFromCsv(fileInputName);
- base64:
csvToJson.base64Encoding().getJsonFromCsv(fileInputName);
- hex:
csvToJson.hexEncoding().getJsonFromCsv(fileInputName);
- Download all csvToJson dependencies:
npm install
- Run Tests
npm test
- Watch Tests
npm run test-watch
CSVtoJSON is licensed under the GNU General Public License v3.0 License.
Just if you want to support this repository:
- BTC tip address: 3KCCK292a61AHrKuVCFZ8Agr3j31Zw8Mzg