I have tried:
$("#dvCSV").append(JSON.stringify(dataArray, null, '\t')); But the output is:
[ { "20": "10", "Barcellona": "Cagliari", "Dipendenti": "Dipendenti" }, { "20": "15", "Barcellona": "Sassari", "Dipendenti": "Dipendenti" }, { "20": "22", "Barcellona": "Torino", "Dipendenti": "Dipendenti" } ]
This answer on SO is perfect but I tried to apply it but did not manage it, this is the jsFiddle to play with:
$(function () { var csv = $("#fileUpload").val(); $("#upload").bind("click", function () { var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.csv|.txt)$/; if (regex.test($("#fileUpload").val().toLowerCase())) { if (typeof (FileReader) != "undefined") { var reader = new FileReader(); reader.onload = function (e) { var rows = e.target.result.split("\r\n"); if(rows.length>0){ var firstRowCells = GetCSVCells(rows[0], ","); var dataArray = new Array(); for(var i=1;i<rows.length;i++) { var cells = GetCSVCells(rows[i], ","); var obj = {}; for(var j=0;j<cells.length;j++) { obj[firstRowCells[j]] = cells[j]; } dataArray.push(obj); } $("#dvCSV").html(''); $("#dvCSV").append(JSON.stringify(dataArray, null, '\t')); } } reader.readAsText($("#fileUpload")[0].files[0]); } else { alert("This browser does not support HTML5."); } } else { alert("Please upload a valid CSV file."); } }); }); function GetCSVCells(row, separator){ return row.split(separator); } #heading { font-size: x-large; font-weight: bold; } .text { width: 99%; height: 200px; } .small { font-size: small; } <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <input type="file" id="fileUpload" name="fileUpload" /> <input type="button" id="upload" value="Upload" name="upload"/> <hr /> <div id="dvCSV"></div>