将csv转换为json,其中来自不同列的值放置在数组中(使用javascript)
假设我有一个如下的CSV文件:将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
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
}