convert csv file to json object datatable convert csv file to json object datatable asp.net asp.net

convert csv file to json object datatable


I realise this is an old question, but I came across it today needing to do the same thing and wrote a script to do it. You can check it out at my github repo.

The following code would accomplish what you're after (using jQuery):

$.ajax("http://my.domain.com/mycsvfile.csv", {    success: function(data) {        var jsonobject = csvjson.csv2json(data);        // Now use jsonobject to do some charting...    },    error: function() {        // Show some error message, couldn't get the CSV file    }});

Happy coding :)


use this code for guide to parse csv file to json ...

function processFiles(files) {    var file = files[0];    var reader = new FileReader();    reader.onload = function (e) {        var output = document.getElementById("fileOutput");        var texto = e.target.result;        csvJSON(texto);    };    reader.readAsText(file);}function csvJSON(csv) {    var lines = csv.split("\n");    var result = [];    var headers;    for (var i = 0; i < lines.length; i++) {        headers = lines[i].split("\n");    }    var cont = 0;    for (var i = 0; i < lines.length; i++) {        var obj = {};        var currentline = lines[i].split("\n");        for (var j = 0; j < headers.length; j++) {            obj[cont] = currentline[j];        }        cont++;        result.push(obj);    }    return JSON.stringify(result); //JSON}


Papa Parse is nice for that.

<html><head>    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>    <script src="libraries/PapaParse-4.1.2/papaparse.min.js"></script>    <script>    $(document).ready(function(){        $("#submitbutton").click(function(){            var myfile = $("#csvfile")[0].files[0];            var json = Papa.parse(myfile,                 {                header: true,                 skipEmptyLines: true,                complete: function(results) {                    console.log("Dataframe:", JSON.stringify(results.data));                    console.log("Column names:", results.meta.fields);                    console.log("Errors:", results.errors);                }            });        })    })    </script></head><body>    <form name="foo" method="post" enctype="multipart/form-data">        <input id="csvfile" type="file" value="i">    </form>    <button id="submitbutton" type="button">Upload CSV file!</button></body></html>

Uploading this CSV:

+------+----------------+---------------+------------+|  Id  |  Petal.Length  |  Petal.Width  |  Species   |+======+================+===============+============+|  1   |      1.4       |      0.2      |   setosa   |+------+----------------+---------------+------------+|  2   |      1.4       |      0.2      |   setosa   |+------+----------------+---------------+------------+|  3   |      1.3       |      0.2      |   setosa   |+------+----------------+---------------+------------+|  4   |      3.9       |      1.4      | versicolor |+------+----------------+---------------+------------+|  5   |      3.5       |       1       | versicolor |+------+----------------+---------------+------------+|  6   |      4.2       |      1.5      | versicolor |+------+----------------+---------------+------------+|  7   |      5.4       |      2.3      | virginica  |+------+----------------+---------------+------------+|  8   |      5.1       |      1.8      | virginica  |+------+----------------+---------------+------------+

you'll get this output in the console:

Dataframe: [{"Id":"1","Petal.Length":"1.4","Petal.Width":"0.2","Species":"setosa"},{"Id":"2","Petal.Length":"1.4","Petal.Width":"0.2","Species":"setosa"},{"Id":"3","Petal.Length":"1.3","Petal.Width":"0.2","Species":"setosa"},{"Id":"4","Petal.Length":"3.9","Petal.Width":"1.4","Species":"versicolor"},{"Id":"5","Petal.Length":"3.5","Petal.Width":"1","Species":"versicolor"},{"Id":"6","Petal.Length":"4.2","Petal.Width":"1.5","Species":"versicolor"},{"Id":"7","Petal.Length":"5.4","Petal.Width":"2.3","Species":"virginica"},{"Id":"8","Petal.Length":"5.1","Petal.Width":"1.8","Species":"virginica"}]Column names: ["Id", "Petal.Length", "Petal.Width", "Species"]Errors: []