Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
Javascript 使用js将json转换为csv_Javascript_Json_Csv_Export To Csv - Fatal编程技术网

Javascript 使用js将json转换为csv

Javascript 使用js将json转换为csv,javascript,json,csv,export-to-csv,Javascript,Json,Csv,Export To Csv,我需要将JSON转换为CSV文件,但我不知道如何正确地进行转换 我已经有这个密码了 let rows=typeof objArray!==“反对”?parse(objArray):objArray; 让标题=”; Object.keys(行[0]).map(pr=>(header+=pr+“;”); 设str=“”; rows.forEach(row=>{ 让线=”; 让列= 行的类型!==“object”?JSON.parse(行):object.values(行); columns.forE

我需要将JSON转换为CSV文件,但我不知道如何正确地进行转换

我已经有这个密码了

let rows=typeof objArray!==“反对”?parse(objArray):objArray;
让标题=”;
Object.keys(行[0]).map(pr=>(header+=pr+“;”);
设str=“”;
rows.forEach(row=>{
让线=”;
让列=
行的类型!==“object”?JSON.parse(行):object.values(行);
columns.forEach(column=>{
如果(行!==“”){
行+=“;”;
}
如果(列的类型==“对象”){
line+=JSON.stringify(列);
}否则{
行+=列;
}
});
str+=行+“\r\n”;
});
返回标头+“\r\n”+str;
但我期待一个不同于我现在的结果

我需要这个

函数ConvertToCSV(objArray){
让rows=typeof objArray!=“object”?JSON.parse(objArray):objArray;
让标题=”;
Object.keys(行[0]).map(pr=>(header+=pr+“;”);
设str=“”;
rows.forEach(row=>{
让线=”;
让列=
行的类型!==“object”?JSON.parse(行):object.values(行);
columns.forEach(column=>{
如果(行!==“”){
行+=“;”;
}
如果(列的类型==“对象”){
line+=JSON.stringify(列);
}否则{
行+=列;
}
});
str+=行+“\r\n”;
});
返回标头+“\r\n”+str;
}
函数下载CSV(){
“2”,2,“3,”3,“3,”3,”3,“3,”3,”3,”3,“卡韦,”3,”3,“卡韦”3,”3,”kawe。3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,“3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”考考考考考考考考考考考考考合3“3“3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3索尔兹:“2”,“ae”:{“a6”:2,“a5”:2,“a4”:6}}]
让结果=ConvertToCSV(数据);
让fileToSave=newblob([result]{
输入:“csv”,
名称:'data.csv
});
saveAs(fileToSave,'data.csv);
}

下载csv
您可以试试这个

函数下载CSV(){
例如,例如:1,“mer”:1,“Sp1”1,“3,”3,“3,”3,”3,“卡韦,”3,”3,“卡韦”3,”3,”卡韦:3,”3,”卡韦:4,“4,”4,“卡7”:4,“7,”7,”7,”7,”7,”7,”3,”3,”3,“3,”3,”3,“3,”3,”3,“3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”3,”卡韦“solz”:“2”,“ae”:{“a6”:2,“a5”:2,“a4”:6},
1,“spi”:1,“aut”:1,”1,“ka8”:5,”5,“ka3”3,“卡韦”:4,“ka7”:5,“ka8”:5,”8,”5“8”:5,”5,“5,”5,”5,”5,”5,”5,”5,”3,”5,”3,”5,”5,”5,”5,”5,”5,”5,”3“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,“ae”:{“a6”:2,“a5”:2,“a4”:6}
];
var键=[];
var值=[];
函数getKeys(数据,k=''){
用于(数据中的var i){
var rest=k.length?'.'+i:i
if(数据类型[i]=“对象”){
if(!Array.isArray(数据[i])){
getkey(数据[i],k+rest)
}
}else键。按下(k+rest)
}
}   
函数getValues(数据,k=''){
用于(数据中的var i){
var rest=k.长度?''+i:i
if(数据类型[i]=“对象”){
if(!Array.isArray(数据[i])){
获取值(数据[i],k+rest)
}
}
else值。推送(数据[rest])
}
}
获取密钥(arr[0])
var值=”;
arr.forEach(x=>{
值=[];
getvalue(x);
value+=values.join(“;”)+“\r\n”;
})
让结果=键。连接(“;”+“\r\n”+值;
让fileToSave=newblob([result]{
输入:“csv”,
名称:“data.csv”
});
saveAs(fileToSave,'data.csv');
}


下载csv
这看起来好多了。谢谢,但是所有的数据都在一行中,这是一个问题,我需要为每个主要对象在excel文件中设置一行,我需要为每个对象设置一行,因此如果在let arr=[{},{},{}]中设置更多的对象会更好。但最后一件事: