Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

convert-csv-to-json

Package Overview
Dependencies
Maintainers
1
Versions
79
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

convert-csv-to-json

Convert CSV to JSON

  • 1.3.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
56K
decreased by-0.38%
Maintainers
1
Weekly downloads
 
Created
Source

CSVtoJSON

GitHub Workflow Status GitHub Workflow Status (branch) Code Climate NPM Version Downloads

This project is not dependent on others packages or libraries.

Table of Contents

  1. Description
  2. Prerequisites
  3. Install npm convert-csv-to-json package
  4. Usage
  5. Development
  6. License
  7. Buy me a Coffee

Description

Converts csv files to JSON files with Node.js.

Give an input file like:

first_namelast_nameemailgenderagezipregistered
ConstantinLangsdonclangsdon0@hc360.comMale96123true
NorahRaisonnraison1@wired.comFemale32false

e.g. :

first_name;last_name;email;gender;age;zip;registered
Constantin;Langsdon;clangsdon0@hc360.com;Male;96;123;true
Norah;Raison;nraison1@wired.com;Female;32;;false

will generate:

[
 {
  "first_name": "Constantin",
  "last_name": "Langsdon",
  "email": "clangsdon0@hc360.com",
  "gender": "Male",
  "age": "96",
  "zip": "123",
  "registered": "true"
 },
 {
  "first_name": "Norah",
  "last_name": "Raison",
  "email": "nraison1@wired.com",
  "gender": "Female",
  "age": "32",
  "zip": "",
  "registered": "false"
 }
]

Prerequisites

NPM (see Installing Npm).

Install npm convert-csv-to-json package

Go to NPM package convert-csv-to-json.

Install

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

Usage

Generate JSON file
let csvToJson = require('convert-csv-to-json');

let fileInputName = 'myInputFile.csv'; 
let fileOutputName = 'myOutputFile.json';

csvToJson.generateJsonFileFromCsv(fileInputName,fileOutputName);
Generate Array of Object in JSON format
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]);
}
Generate Object with sub array
firstName;lastName;email;gender;age;birth;sons
Constantin;Langsdon;clangsdon0@hc360.com;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": "clangsdon0@hc360.com",
      "gender": "Male",
      "age": "96",
      "birth": "10.02.1965",
      "sons": ["diego","marek","dries"]
    }
]
Define field delimiter

A field delimiter is needed to split the parsed values. As default the field delimiter is the semicolon (;), this means that during the parsing when a semicolon (;) is matched a new JSON entry is created. In case your CSV file has defined another field delimiter you have to call the function fieldDelimiter(myDelimiter) and pass it as parameter the field delimiter.

E.g. if your field delimiter is the comma , then:

 csvToJson.fieldDelimiter(',').getJsonFromCsv(fileInputName);
Format property value by type

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": "clangsdon0@hc360.com",
  "gender": "Male",
  "age": 96,
  "zip": 123,
  "registered": true
 },
 {
  "first_name": "Norah",
  "last_name": "Raison",
  "email": "nraison1@wired.com",
  "gender": "Female",
  "age": 32,
  "zip": "",
  "registered": false
 }
]
Number

The property age is printed as

 "age": 32

instead of

  "age": "32"
Boolean

The property registered is printed as

 "registered": true

instead of

  "registered": "true"
Encoding

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);
    

Development

  • Download all csvToJson dependencies:
    npm install
    
  • Run Tests
    npm test
    
  • Watch Tests
    npm run test-watch
    

License

CSVtoJSON is licensed under the GNU General Public License v3.0 License.

Buy me a Coffee

Just if you want to support this repository:

  • BTC tip address: 3KCCK292a61AHrKuVCFZ8Agr3j31Zw8Mzg

Keywords

FAQs

Package last updated on 29 Jan 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc