Nonlinear Programming Methods

    convert-csv-to-json

    1.3.1 • Public • Published

    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 clangsdon0@hc360.com Male 96 123 true
    Norah Raison nraison1@wired.com Female 32 false

    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

    Install

    npm i convert-csv-to-json

    DownloadsWeekly Downloads

    17,030

    Version

    1.3.1

    License

    ISC

    Unpacked Size

    82.7 kB

    Total Files

    20

    Last publish

    Collaborators

    • iuccio