如何将CSV数据转换为JSON数据?

时间:2018-03-26 06:52:06

标签: javascript json csv

我编写了从设备获取数据的代码。 数据的格式为 csv 。以下是数据值。

1,1.635946,1.636609,1.640240,1.636091

2,1.642825,1.640267,1.639013,1.636568

3,1.636835,1.636022,1.637664,1.637144

4,1.641332,1.641166,1.637950,1.640760

5,1.636041,1.637437,1.640702,1.633678

但我希望数据采用 json 格式。所以我尝试使用online converter并获得以下值:

[

 {

   "1": 2,

   "1.635946": 1.642825,

   "1.636609": 1.640267,

   "1.640240": 1.639013,

   "1.636091": 1.636568

 },

 {

   "1": 3,

   "1.635946": 1.636835,

   "1.636609": 1.636022,

   "1.640240": 1.637664,

   "1.636091": 1.637144

 }

]

如果我想获取这些值,我应该修改哪些代码?

以下是我的代码。

var Timer;
var i = 0 ;
    setTimeout(function(){
        Timer = setInterval(function(){

            port.write(meascommand+'\n');
            i++;

            if(i==5){
                clearInterval(Timer);
            }
        },5000);
    },1000);

port.on('data',function(devicevalue){
    arrayvalue = devicevalue.toString();
    eachvalue = arrayvalue.split(';');
var results = [];

            var index = i ; 
            var ch0value = eachvalue[0] ; 
            var ch1value = eachvalue[1] ; 
            var ch2value = eachvalue[2] ; 
            var ch3value = eachvalue[3] ; 

            results[0] = index ;
            results[1] = ch0value ;
            results[2] = ch1value ;
            results[3] = ch2value ;
            results[4] = ch3value ;

            console.log(results);

            fs.appendFile(file,results+'\r\n',function(err){
                if(err)
                    console.log(err);
            });
        });

};

2 个答案:

答案 0 :(得分:2)

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
}

答案 1 :(得分:0)

尝试使用以下代码。积分转到:https://gist.github.com/iwek/7154578

注意:split(",")。如果行包含,代码段,则无法正常工作。但据我所知,数据并非如此。

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
}