簡體   English   中英

Javascript:如何將數組中的JSON數組轉換為CSV文件?

[英]Javascript: How to convert an JSON arrays in array into an CSV file?

我在這里處理JSON文件...這是我從處理.php文件中得到的結果:

{"1":{"Nachname":"Stromberg","Vorname":"Bernd", 
"Benutzername":"strombergbernd12","Password":"Xrz5Bv6A"},
"2":{"Nachname":"Heisterkamp","Vorname":"Ernie", 
"Benutzername":"heisterkampernie12","Password":"aOq24EpF"}}

現在,我想從此JSON數組構建一個csv文件。 csv文件的第一行應提及標題Nachname,Vorname,Benutzername和Password,然后在接下來的行中列出其余數據。

我無法解決,您能幫我嗎?

一旦擁有json文本,就可以解析它:

var json = JSON.parse(jsonAsText);

將其轉換為數組:

json = Object.values(json);

初始化您的結果:

var csv = "";

將標頭鍵放在某處:

var keys = (json[0] && Object.keys(json[0])) || [];

寫標題行

csv += keys.join(',') + '\n';

迭代並將所有內容放入csv

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

您的csv內容應已准備就緒

 var json = { "1": { "Nachname": "Stromberg", "Vorname": "Bernd", "Benutzername": "strombergbernd12", "Password": "Xrz5Bv6A" }, "2": { "Nachname": "Heisterkamp", "Vorname": "Ernie", "Benutzername": "heisterkampernie12", "Password": "aOq24EpF" } } function toCSV(json) { json = Object.values(json); var csv = ""; var keys = (json[0] && Object.keys(json[0])) || []; csv += keys.join(',') + '\\n'; for (var line of json) { csv += keys.map(key => line[key]).join(',') + '\\n'; } return csv; } console.log(toCSV(json)); 


注意:如果可以,請將json切換為Array語法:

[
  {
    "Nachname":"Stromberg",
    "Vorname":"Bernd",
    "Benutzername":"strombergbernd12",
    "Password":"Xrz5Bv6A"
  },
  {
    "Nachname":"Heisterkamp",
    "Vorname":"Ernie", 
    "Benutzername":"heisterkampernie12",
    "Password":"aOq24EpF"
  }
]

然后刪除此行:

json = Object.values(json);

您可以使用: Object.keys()Object.values()

像這樣:

 (function() { var data = { "1": { "Nachname": "Stromberg", "Vorname": "Bernd", "Benutzername": "strombergbernd12", "Password": "Xrz5Bv6A" }, "2": { "Nachname": "Heisterkamp", "Vorname": "Ernie", "Benutzername": "heisterkampernie12", "Password": "aOq24EpF" } }; var csv = Object.keys(data[Object.keys(data)[0]]).join(","); // Header columns. csv += "\\n"; for (var item in data) { csv += Object.values(data[item]).join(","); csv += "\\n"; } console.log(csv); }()); 
 .as-console-wrapper { position: relative; top: 0; } 

結果將是:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM