Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将csv转换为json,其中来自不同列的值放置在数组中(使用javascript)_Javascript_Json_Csv_Converter - Fatal编程技术网

将csv转换为json,其中来自不同列的值放置在数组中(使用javascript)

将csv转换为json,其中来自不同列的值放置在数组中(使用javascript),javascript,json,csv,converter,Javascript,Json,Csv,Converter,假设我有一个如下的CSV文件: name, region, year, population, income "USA", "America", 2000, 111, 444 "USA", "America", 2001, 222, 555 "USA", "America", 2002, 333, 666 "Germany", "Europe", 2000, 777, 888 我想知道是否可以将其转换为以下格式的JSON文档: [{"name": "USA", "region": "Amer

假设我有一个如下的CSV文件:

name, region, year, population, income
"USA", "America", 2000, 111, 444
"USA", "America", 2001, 222, 555
"USA", "America", 2002, 333, 666
"Germany", "Europe", 2000, 777, 888
我想知道是否可以将其转换为以下格式的JSON文档:

[{"name": "USA", 
"region": "America",
"population": [
    [2000, 111],
    [2001, 222],
    [2002, 333]
 ],
"income": [
     [2000, 444],
     [2001, 555],
     [2002, 666]
]
},
{"name": "Germany", 
"region": "Europe",
"population": [
    [2000, 777]
 ],
"income": [
     [2000, 888]
]
}]
首先,我使用发布的代码将CSV转换为简单的JSON文档:

//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
};

var textCSV = "name,region,year,population,income\n" +
"USA,America,2000,111,444\n" +
"USA,America,2001,222,555\n" +
"USA,America,2002,333,666\n" +
"Germany,Europe,2000,777,888";

var runFunc = csvJSON(textCSV);
console.log(runFunc);
我需要一些技巧,从这里开始实现指定的格式,在数组中有year+人口,然后是year+收入,所有内容都在一个{}中。

//var csv是带有标题的csv文件
//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
}
函数csvJSON(csv){ 变量行=csv.split(“\n”); var结果=[]; var headers=行[0]。拆分(“”,“”);
对于(var i=1;i可能的@Taki副本),在那里指定的解决方案将为我的CSV文件中的每一行生成一个{}。我指定了一种JSON格式,其中我希望所有数据都只有一个{},并将“合并”数组中的年+人口以及年+收入。是的,这是可能的。但是,要获得所需的格式,您需要更多的直接转换。到目前为止,您尝试了什么?我们是来帮助您的,不是为您做的。@Ghostrydr很抱歉,我更新了我的问题。您正在每行输入
result
阅读。仅当
名称
区域
构成新键时,才应按此键。
//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
}