-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path_svtojson.js
More file actions
32 lines (30 loc) · 841 Bytes
/
Copy path_svtojson.js
File metadata and controls
32 lines (30 loc) · 841 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*
* Converts __ separated value data to JSON
* for example, CSV (comma separated values) or TSV (tab separated values) => JSON
* @param {String} data (should be in CSV/TSV/etc format)
* @param {String} delimiter (TSV: '\t', CSV: ',') (defaults to CSV)
* @returns {Object} json
*
* @author: gist.github.com/krrishd
*/
let _sv2json = (() => {
function convert(data, delimiter) {
let json = [];
let d = data.split('\n');
let keys = d[0].split(delimiter || ',');
d = d.splice(1);
d.forEach(data => {
let keyVal = data.split(delimiter || ',');
let obj = {};
keys.forEach((keyData, n) => {
obj[keyData] = keyVal[n];
});
json.push(obj);
});
return json;
}
return function(data, delimiter) {
return convert(data, delimiter);
}
})();
module.exports = _sv2json;