Skip to content

Instantly share code, notes, and snippets.

@rik
Forked from codepo8/CSVtoJSon.js
Last active February 29, 2024 09:12
Show Gist options
  • Save rik/c45d2eec52ebfb78be5f5eedeb0ea617 to your computer and use it in GitHub Desktop.
Save rik/c45d2eec52ebfb78be5f5eedeb0ea617 to your computer and use it in GitHub Desktop.
OK, here is my function to turn CSV into JSON - what's yours?
const csvToJSON = (csv) => {
const getcsvdata = (csv) => {
const csvRegex = /,(?=(?:(?:[^"]*"){2})*[^"]*$)/;
const trimQuotes = /^"|"$/g;
csv = csv.split(csvRegex).map(
h => h.trim().replace(trimquotes, '')
);
return csv;
}
let lines = csv.split('\n');
let headers = getcsvdata(lines[0]);
let result = [];
lines.slice(1).forEach(line => {
var item = {};
let currentline = getcsvdata(line);
headers.forEach((header, i) => {
item[header] = currentline[i];
})
result.push(item);
});
return result;
}
let csv = `Name, Age, City
John, 21, New York
"Jane, Doe", 22, San Francisco
Jim, 23, Chicago
"Jill Chill", 24, "Tacoma, Seattle"`;
console.log(csvToJSON(csv));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment