Skip to content

Commit 8d27fa4

Browse files
committed
Finish conversion of CSV to JSON
1 parent 7b5cdd2 commit 8d27fa4

File tree

3 files changed

+28
-16
lines changed

3 files changed

+28
-16
lines changed

csv2json.js

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,26 @@ module.exports = function(file) {
55
if (path.extname(file) != '.csv') {
66
console.log("Invalid file. Files with extension .csv only.")
77
} else {
8-
fs.readFile(file, function(err, data) {
9-
if (err) throw err;
10-
11-
var jsonData = [];
8+
var data = fs.readFileSync(file);
9+
return convertToJson(data);
10+
}
11+
12+
function convertToJson(data) {
13+
var jsonData = [];
1214

13-
var formattedData = data.toString('utf8').split('\r\n');
14-
for (var i = 0; i < formattedData.length; i++) {
15-
console.log(formattedData[i]);
15+
var formattedData = data.toString('utf8').split('\r\n');
16+
var keys = formattedData[0].split('\t');
17+
18+
for (var i = 1; i < formattedData.length; i++) {
19+
var row = formattedData[i].split('\t');
20+
var obj = {};
21+
for (var j = 0; j < row.length; j++) {
22+
obj[keys[j]] = row[j];
1623
}
17-
});
24+
25+
jsonData.push(obj);
26+
}
27+
28+
return JSON.stringify(jsonData);
1829
}
1930
}

test/sample.csv

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
0 Hello
2-
1 World
3-
2 This
4-
3 Is
5-
4 CSV
6-
5 To
7-
6 JSON
1+
Number String
2+
0 Hello
3+
1 World
4+
2 This
5+
3 Is
6+
4 CSV
7+
5 To
8+
6 JSON

test/test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
var csv2json = require('../csv2json');
22

3-
csv2json('test/sample.csv');
3+
console.log(csv2json('test/sample.csv'));

0 commit comments

Comments
 (0)