【发布时间】:2016-09-26 08:55:59
【问题描述】:
我正在尝试将 JSON 对象转换为 javascript 中的 CSV 文件。
我已经使用了各种库和预制函数,但是一旦 JSON 开始嵌套,我似乎就没有任何效果。
这是我正在使用的功能之一:
function 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 (line != '') line += ','
line += array[i][index];
}
str += line + '\r\n';
}
return str;
}
我看到有人说你的json对象的复杂性不应该影响你的输出,但我得到的只是:[object Object]、[object Object]、[object Object]等。
在线您可以找到 json 到 csv 转换器,如果属性是双重嵌套的,它们实际上可以创建一个带有额外标题的精美 csv 文件。 因此,对于我将如何编写这样的函数的正确方向的任何提示将不胜感激。如果您知道任何可以执行此操作的库,那就太好了!
(值得说明的是,当我使用单层 json 对象时,csv 文件不会显示 [object,Object] 而是给了我一个不错的 csv 文件,只有当它开始嵌套时不再工作了)
更新:根据要求,这是我正在使用的 JSON 文件。
[
{
"HEADER": {
"SEARCH": "Zoeken",
"FILTER": "Filter",
"MISC": "Overige"
},
"FORM": {
"REQUIRED": "Dit veld is verplicht",
"MINLENGTH": "De input is te kort",
"MAXLENGTH": "De input is te lang",
"EMAIL": "Geen geldig e-mailadres"
},
"TODO": "TODO: Hier moet nog een leuke tekst komen! dit komt uit een vertaling, in dit geval Nederlands. Nu is Nederlands natuurlijk op dit moment de enige taal maar het zou mooi zijn als hier in de toekomst veer vertalingen bij komen..."
}
]
我还想补充一点,当我使用 'agnes.js' 时,我没有得到 [Object object] 作为输出,而是每个字母都被添加到彼此下方,并且不超过 1 列。
【问题讨论】:
-
请添加您的对象的示例。
-
我试过你的示例代码。我没有收到
[object Object] -
@NinaScholz 添加了我的 json 示例
-
@BlazeSahlzen 您的 json 是否也嵌套了?它也适用于我的示例 json 代码吗?
-
它显然不适用于嵌套的 json。因为
toString方法总是为object返回[object Object]。你可以把它串起来。
标签: javascript angularjs json csv