Converter os dados CSV para o formato JSON usando Javascript
Tenho dados no formato CSV e quero converter para o formato JSON usando Javascript.
Segue-se o formato csv:
[Test.csv]
id;name;author
integer;string;authors:n
1;To Kill an Angry Bird;1
[authors.csv]
id;name
integer;string
1;Harper Lee
2;JRR Tolkien
3;William Shakespeare
Quero levar todos os livros com os autores. Então, por favor, Como posso implementá-lo usando Javascript.
4
Author: Mehmet Seckin, 2015-01-16
2 answers
O abaixo deve funcionar para ti.
Todos os créditos a http://techslides.com/convert-csv-to-json-in-javascript
//var csv is the CSV file with headers
function csvJSON(csv){
var lines=csv.split("\n");
var result = [];
var headers=lines[0].split(",");
for(var i=1;i<lines.length;i++){
var obj = {};
var currentline=lines[i].split(",");
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
}
7
Author: DelightedD0D, 2015-01-16 08:40:28
Tenho uma resposta semelhante como @Deleitedd0d, mas o meu código pode ser usado em conjunto com o Excel directamente (copiar e colar do Excel para um textarea).
function csvUpload(csvText){
//Split all the text into seperate lines on new lines and carriage return feeds
var allTextLines = csvText.split(/\r\n|\n/);
//Split per line on tabs and commas
var headers = allTextLines[0].split(/\t|,/);
var lines = [];
var locations = [];
for (var i=1; i<allTextLines.length; i++) {
var data = allTextLines[i].split(/\t|,/);
if (data.length == headers.length) {
var location = {"device_id":data[0], "address":data[1], "city":data[2]};
locations.push(location);
}
}
return locations;
}
Desta forma você pode usar um CSV que é copiado para o Excel. O Excel irá remover os separadores como ,
e outros e irá inserir novas linhas, etc.
for(var j=0;j<headers.length;j++){
obj[headers[j]] = currentline[j];
}
0
Author: VeldMuijz, 2015-01-16 09:10:20