Skip to content

Instantly share code, notes, and snippets.

@iwek
Last active March 20, 2023 02:46
Show Gist options
  • Star 26 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
  • Save iwek/7154706 to your computer and use it in GitHub Desktop.
Save iwek/7154706 to your computer and use it in GitHub Desktop.
TSV to JSON Conversion in JavaScript
//var tsv is the TSV file with headers
function tsvJSON(tsv){
var lines=tsv.split("\n");
var result = [];
var headers=lines[0].split("\t");
for(var i=1;i<lines.length;i++){
var obj = {};
var currentline=lines[i].split("\t");
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
}
@gegeke
Copy link

gegeke commented Jul 9, 2020

Not really clean (but what function with reduce in it is ;) ), but no slices, no headers variable:

function tsvJSON(tsv) {
  return tsv.split('\n')
  .map(line => line.split('\t'))
  .reduce((a, c, i, d) => {
    if (i) {
      const item = Object.fromEntries(c.map((val, j) => [d[0][j], val]))
      return a ? [...a, item] : [item]
    }
  }, [])
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment