csv-2-json
Version:
Utility module for parsing csv data to json and saving it to file
48 lines (41 loc) • 1 kB
JavaScript
var fs = require('fs');
module.exports = {
toJson : function(path,options){
options ||
(options = {
filename:"result.json",
indent: 3,
delimiter:','
})
var content = readFileIfExist(path);
if(!content || typeof content !== "string"){
throw new Error("Invalid CSV Data");
}
content = content.split(/[\n\r]+/gi);
var Columns = content.shift().split(options.delimiter),
jsonObject = [];
content.forEach(function(item){
if(item) {
item = item.split(options.delimiter);
var hashItem = {}
Columns.forEach(function(c,i){
hashItem[c] = item[i];
})
jsonObject.push(hashItem);
}
});
return saveToFile(jsonObject,options);
}
}
var readFileIfExist = function(path){
if(fs.statSync(path)){
return fs.readFileSync(path,'utf8')
}
return null
}
var saveToFile = function(data, options){
if(typeof data == "object"){
data = JSON.stringify(data, null,options.indent)
}
fs.writeFileSync(options.filename,data,"utf8");
}