【发布时间】:2020-11-26 08:12:14
【问题描述】:
我想将 JSON 数组转换为 CSV 格式。我希望 CSV 的第一行是数据的标签。
我的数组有一个样本:
objArray = [
{"idMachine": 195, "LabelStop": "No more piece", "LabelNC": "Default"},
{"idMachine": 214, "LabelStop": "No more box", "LabelNC": "Default"}
]
而我想要的结果:
idMachine;LabelStop;LabelNC
195;No more piece;Default
214;No more box;Default
目前,我的代码如下所示:
convertToCSV(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]) {
if (i == 0) {
if (line != '') line += ';'
line += index;
} else {
if (line != '') line += ';'
line += array[i][index];
}
}
str += line + '\r\n';
}
return str;
}
问题是第一行是数据标签,但第一个值被跳过了。我的 CSV 看起来像这样:
idMachine;LabelStop;LabelNC
214;No more box;Default
【问题讨论】:
-
当然第一行的值被跳过了——因为你只在
else分支中添加值,并且if (i == 0)对于第一行是真的,它永远不会添加值。 -
@CBroe 是的,但我不知道如何纠正我的程序..
标签: javascript arrays csv