Skip to content

Instantly share code, notes, and snippets.

@codepo8
Last active February 29, 2024 09:07
Show Gist options
  • Save codepo8/b33d5b9dc9235adb2b9ac20f3b089d8a to your computer and use it in GitHub Desktop.
Save codepo8/b33d5b9dc9235adb2b9ac20f3b089d8a to your computer and use it in GitHub Desktop.

Revisions

  1. codepo8 revised this gist Feb 28, 2024. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion CSVtoJSon.js
    Original file line number Diff line number Diff line change
    @@ -3,7 +3,7 @@ const csvToJSON = (csv) => {
    const csvRegex = /,(?=(?:(?:[^"]*"){2})*[^"]*$)/;
    const trimQuotes = /^"|"$/g;
    csv = csv.split(csvRegex).map(
    h => h.trim().replace(trimquotes, '')
    h => h.trim().replace(trimQuotes, '')
    );
    return csv;
    }
  2. codepo8 revised this gist Feb 28, 2024. 1 changed file with 4 additions and 4 deletions.
    8 changes: 4 additions & 4 deletions CSVtoJSon.js
    Original file line number Diff line number Diff line change
    @@ -22,9 +22,9 @@ const csvToJSON = (csv) => {
    }

    let csv = `Name, Age, City
    John, 21, New York
    "Jane, Doe", 22, San Francisco
    Jim, 23, Chicago
    "Jill Chill", 24, "Tacoma, Seattle"`;
    John, 21, New York
    "Jane, Doe", 22, San Francisco
    Jim, 23, Chicago
    "Jill Chill", 24, "Tacoma, Seattle"`;

    console.log(csvToJSON(csv));
  3. codepo8 created this gist Feb 28, 2024.
    30 changes: 30 additions & 0 deletions CSVtoJSon.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    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));