A Tool convert CSV to JSON or JS Object with NO Dependencies.
npm install --save csv2jsonfileor
yarn add csv2jsonfilesee from npm package.
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 constcsv2jsonfile=require('csv2jsonfile');constpath=require('path');constsourcePath=path.resolve(__dirname,'data.csv');consttargetPath=path.resolve(__dirname,'result.json');// default convert CSV with headercsv2jsonfile(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 headercsv2jsonfile(sourcePath,targetPath,{header: false}).then((time)=>{console.log(`use: ${time} ms`);}).catch((err)=>{console.log(err.message);})varcsv2jsonfile=require('csv2jsonfile');csv2jsonfile.inline('data.csv').then((obj)=>{console.log(obj)}).catch((err)=>{console.log(err);})// CSV without headercsv2jsonfile.inline('data.csv',{header: false}).then((obj)=>{console.log(obj);}).catch((err)=>{console.log(err);})/** * 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?)- Delete
targetPathfile if it exists before convert.(no need to manuallt clear) - 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"}]- fix bug: if there are no new empty line(
\n) at the end of the file, may cause confusion.