csv2jsonfile
TypeScript icon, indicating that this package has built-in type declarations

1.2.3 • Public • Published

csv2jsonfile

Build StatusCodecovnpmnpm bundle size

A Tool convert CSV to JSON or JS Object with NO Dependencies.

Install

npm install --save csv2jsonfile

or

yarn add csv2jsonfile

see from npm package.

Usage

note: the csv file must have header(used as key), like the example below:

city,level,alias
Shanghai,3,SH
Chongqing,3,SQ
Jinan,4,JN 

CSV to JSON

const csv2jsonfile = require('csv2jsonfile');
const path = require('path');
const sourcePath = path.resolve(__dirname, 'data.csv'); 
const targetPath = path.resolve(__dirname, 'result.json');
 
// default convert CSV with header
csv2jsonfile(sourcePath, targetPath)
  .then((time) => {
    console.log(`use: ${time} ms`);
  })
  .catch((err) => {
    console.log(err.message);
  })
// result in result.json
/*
[
  {
    city: "Shangehai",
    level: "3",
    alias: "SH"
  },
  {
    city: "Chongqing",
    level: "3",
    alias: "CQ"
  },
]
*/
// CSV without header
csv2jsonfile(sourcePath, targetPath, { header: false })
  .then((time) => {
    console.log(`use: ${time} ms`);
  })
  .catch((err) => {
    console.log(err.message);
  })

CSV to JavaScript Object

var csv2jsonfile = require('csv2jsonfile');
csv2jsonfile.inline('data.csv')
  .then((obj) => {
    console.log(obj)
  })
  .catch((err) => {
    console.log(err);
  })
// CSV without header
csv2jsonfile.inline('data.csv', { header: false })
  .then((obj) => {
    console.log(obj);
  })
  .catch((err) => {
    console.log(err);
  })

API

/**
 * convert csv to json file
 * @param {string} sourcePath absolute path of csv file 
 * @param {string} targetPath absolute path of json file
 * @param {object} options default { header: true }
 * @return {Promise} ms usage through convert progress
 */
csv2jsonfile(sourcePath, targetPath, options?)
 
/**
 *  convert csv to javascript object
 * @param {string} sourcePath absolute path of csv file
 * @param {object} options default { header: true }
 * @return {Promise} the object after convert
 */
csv2jsonfile.inline(sourcePath, options?)

ChangeLog

v1.2.0

  1. Delete targetPath file if it exists before convert.(no need to manuallt clear)
  2. add No Header CSV support.

If the CSV without header, It will be converted into Array each line. E.g:

// data.csv => data.json
// 1. without header
[
  ["Shanghai", "3", "SH"],
  ["Chongqing", "3", "CQ"],
  ["Jinan", "4", "JN"]
]
// with header
[
  {
    "city": "Shanghai",
    "level": "3",
    "alias": "SH"
  },
  {
    "city": "Chongqing",
    "level": "3",
    "alias": "CQ"
  },
  {
    "city": "Jinan",
    "level": "4",
    "alias": "JN"
  }
]
  1. fix bug: if there are no new empty line(\n) at the end of the file, may cause confusion.

Dependencies (0)

    Dev Dependencies (11)

    Package Sidebar

    Install

    npm i csv2jsonfile

    Weekly Downloads

    1

    Version

    1.2.3

    License

    ISC

    Unpacked Size

    6.74 kB

    Total Files

    5

    Last publish

    Collaborators

    • limoer