Last active
July 5, 2024 14:29
-
-
Save iwek/7154578 to your computer and use it in GitHub Desktop.
CSV to JSON Conversion in JavaScript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//var csv is the CSV file with headers | |
function csvJSON(csv){ | |
var lines=csv.split("\n"); | |
var result = []; | |
var headers=lines[0].split(","); | |
for(var i=1;i<lines.length;i++){ | |
var obj = {}; | |
var currentline=lines[i].split(","); | |
for(var j=0;j<headers.length;j++){ | |
obj[headers[j]] = currentline[j]; | |
} | |
result.push(obj); | |
} | |
//return result; //JavaScript object | |
return JSON.stringify(result); //JSON | |
} |
@OFRBG I liked this your solution. I suggest just filtering the lines before iteration to eliminate blank lines from the csv file.
const csvToJson = csv => {
const [firstLine, ...lines] = csv.split('\n');
const keys = firstLine.split(',');
// add a filter here
return lines.filter(line => line).map(line => ((values) =>
keys.reduce(
(curr, next, index) => ({
...curr,
[next]: values[index],
}),
{}
)
)(line.split(',')));
};
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
(i use angular 8 for my app), later, when the event fires, i read the file with FileReader and converts as a text:
later, when some validations it's ok, i use the csv-json converter
the function to camelcase() and toLowerCase() its only for a format that i use for my info, it's not necessary.
I hope to this info helps you and others that have this same problem, other thing, sorry for mi english, i'm learning it, hehe