我已经使用 JavaScript 将 JSON 转换为 CSV,但以一种奇怪的方式,我没有看到 header 被传输到 CSV 文件。我只看到相应的值。
下面是示例
1) JSON ....
[
{
"entityid": 2,
"personid": 45676
}
]
2) JavaScript 代码 ....
function DownloadJSON2CSV(objArray)
{
alert(objArray);
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '';
for (var i = 0; i < array.length; i++) {
var line = '';
for (var index in array[i]) {
//line += array[i][index] + ',';
if (line != '') line += ','
line += array[i][index];
}
alert(line);
// Here is an example where you would wrap the values in double quotes
// for (var index in array[i]) {
// line += '"' + array[i][index] + '",';
// }
//line.slice(0,line.Length-1);
str += line + '\r\n';
}
alert(str);
window.open( "data:text/csv;charset=utf-8," + escape(str))
}
3) CSV 输出....
2,45676
<小时/>我应该在文档第一行的 CSV 中看到键 - entityid
和 personid
,但我没有。
最佳答案
此代码将从 json 键中提取 header ,此外它还将双引号包含逗号的字段。
函数convertToCSV(objArray) {
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '';
var 键 = [];
for(var k in objArray[0])keys.push(k);
for (var i = 0; i < key.length; i++)
{
if(i==keys.length-1){str=str+keys[i]+'\r\n'}
否则 {str=str+keys[i]+','}
}
for (var i = 0; i < array.length; i++) {
var 行 = '';
for (数组[i]中的var索引) {
if (line != '') line += ','
if(array[i][index].toString().includes(",") && typeof array[i][index] === 'string'){array[i][index]="\""+数组[i][索引]+"\""}
行+=数组[i][索引];
}
str += 行 + '\r\n';
}
返回字符串;
}
用法:(对于 Node.js)
var fs = require('fs');//**运行** npm install fs **如果尚未在cmd中安装**
var arrayOfObjects = [{"id":28,"Title":"瑞典"}, {"id":56,"Title":"美国"},{"id":89,"Title":"英格兰"}];
fs.writeFile("./test.csv",convertToCSV(arrayOfObjects));
关于javascript - 使用 Javascript 将 JSON 转换为 CSV 不会给出 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48213639/