Coder Social home page Coder Social logo

csvtojson's Introduction

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_name last_name email 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"
 }
]

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;[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"]
    }
]

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": "[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
 }
]
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

csvtojson's People

Contributors

iuccio avatar epan avatar paragvk avatar dependabot[bot] avatar ikatun avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.