Skip to content

tsuz/node-csvjsonlite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-csvjsonlite Build Status npm version

###Lightweight CSV to JSON for Node.JS

Usage

    var csv  = require('node-csvjsonlite');

    var filename = './path/to/your.csv';
    // OR this can be a URL like
    // filename = 'http://sample.com/data.csv';
    // OR filename can be a string of CSV data
    //
    // Suppose your.csv is following:
    //
    // Date,Open,High,Low
    // 2015-03-27,2.58,2.65,2.53
    // 2015-03-26,2.73,2.74,2.57
    // 2015-03-25,2.64,2.73,2.61

    csv
        .convert(filename)
            // Detects whether filname is
            // a local file, URL, or string of data
        .then(function(successData){
            console.log('CSV in JSON', successData);
            // resolves to
            // [{ Date: 2015-03-27, Open: 2.58, High: 2.65, Low: 2.53 },
            //  { Date: 2015-03-26, Open: 2.73, High: 2.74, Low: 2.57 },
            //  { Date: 2015-03-25, Open: 2.64, High: 2.73, Low: 2.61 }]
        });

Or you can be specific

    var promiseFile = csv.convertFile(filename);
    var promiseURL  = csv.convertURL(fileURL);
    var promiseStr  = csv.convertString(stringData);

Get Started

npm install node-csvjsonlite
var csv = require('node-csvjsonlite');

Features

###Bluebird as promise

Bluebird is used as promise to keep it lightweight.

###Commas within double quotes

    var csv  = require('node-csvjsonlite');

    var filename = './path/to/your.csv';

    // where your.csv has the following data:
    // Date, Value
    // 2015-02-14,"2,2"
    // 2015-02-15,"4,3"
    // 2015-02-16,"1,2"
    // resolves to
    // [{ Date: 2015-02-14, Value: 2,2 },
    //  { Date: 2015-02-15, Value: 4,3 },
    //  { Date: 2015-02-16, Value: 1,2 }]

###CSV from online source

    var csv  = require('node-csvjsonlite');

    var filename = 'http://something.com';

where filename can be HTTP or HTTPS.

Note: If file does not exist, then it will reject the promise.

###Error Handling

Error will be resolved in the Promise rejection.

    var csv  = require('node-csvjsonlite');

    var badFilename = './path/to/invalid.csv';

    csv
        .convert(badFilename)
        .then(function(successData){
            console.log('This shouldn\'t show');
        }, function(errorReason){
            console.log(errorReason);
            // Error Reason is either a string ("File does not exist")
            // or an error object returned from require('fs').readFile
        });

Note that since it uses bluebird as promise, if the promise is rejected and there is no rejection handler, it will throw an error.

About

Lightweight CSV to JSON for Node.JS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published