Javascript:如何将数组中的 JSON 数组转换为 CSV 文件?

Daw*_*wko 2 javascript csv arrays json

我在这里挣扎着我的 JSON 文件......这是我从处理 .php 文件中得到的作为响应:

{"1":{"Nachname":"Stromberg","Vorname":"Bernd", 
"Benutzername":"strombergbernd12","Password":"Xrz5Bv6A"},
"2":{"Nachname":"Heisterkamp","Vorname":"Ernie", 
"Benutzername":"heisterkampernie12","Password":"aOq24EpF"}}
Run Code Online (Sandbox Code Playgroud)

现在,我想从这个 JSON 数组构建一个 csv 文件。在第一行,csv 文件应该提及标题 Nachname、Vorname、Benutzername 和 Password,然后在接下来的行中列出其余数据。

我处理不了,你能帮我吗?

Apo*_*olo 5

一旦你有你的 json 作为文本,你就解析它:

var json = JSON.parse(jsonAsText);
Run Code Online (Sandbox Code Playgroud)

将其转换为数组:

json = Object.values(json);
Run Code Online (Sandbox Code Playgroud)

初始化你的结果:

var csv = "";
Run Code Online (Sandbox Code Playgroud)

将标题键保留在某处:

var keys = (json[0] && Object.keys(json[0])) || [];
Run Code Online (Sandbox Code Playgroud)

写标题行

csv += keys.join(',') + '\n';
Run Code Online (Sandbox Code Playgroud)

迭代并将所有内容放入 csv

for (var line of json) {
  csv += keys.map(key => line[key]).join(',') + '\n';
}
Run Code Online (Sandbox Code Playgroud)

您的 csv 内容应该准备好了

var json = JSON.parse(jsonAsText);
Run Code Online (Sandbox Code Playgroud)


注意:如果可以,请将 json 切换为 Array 语法:

[
  {
    "Nachname":"Stromberg",
    "Vorname":"Bernd",
    "Benutzername":"strombergbernd12",
    "Password":"Xrz5Bv6A"
  },
  {
    "Nachname":"Heisterkamp",
    "Vorname":"Ernie", 
    "Benutzername":"heisterkampernie12",
    "Password":"aOq24EpF"
  }
]
Run Code Online (Sandbox Code Playgroud)

然后删除这一行:

json = Object.values(json);
Run Code Online (Sandbox Code Playgroud)