以下是我們如何在腳本中輕松地將 JSON 轉換為 CSV:
這將是 CSV 輸出:
了解步驟
我們創建了一個可重用的函數,讓我們將多個 JSON 字符串轉換為 CSV。它采用一個包含對象的數組。每個對象將在 CSV 輸出中占用一行。jsonToCsv()
我們在此函數中執行的第一個操作是獲取將用于 CSV 標頭的所有密鑰。我們希望數組中的所有對象都具有相同的鍵,因此我們使用 Object.keys() 方法將第一個對象項中的鍵提取到數組中。
獲取密鑰后,我們在數組上調用 join() 方法,將所有元素連接成 CSV 標頭字符串。
接下來,我們創建一個函數,該函數將作為回調傳遞給 JSON.stringify() 函數的替換符參數。此函數將處理或屬性 JSON 數組中對象的值。undefined null
然后,我們使用 Array map() 方法從每個對象獲取屬性值。 采用在每個數組元素上調用的回調函數以返回轉換。map()
此回調使用數組獲取每個對象的所有鍵。通過對 的另一次調用,它會遍歷每個鍵,獲取對象中該鍵的相應值,并使用 JSON.stringify() 將其轉換為字符串。headermap()
此內部調用最終將生成一個數組,其中包含數組中當前對象的所有字符串化屬性值。map()
將對象轉換為屬性值數組后,將使用 join() 將數組轉換為 CSV 行。
因此,JSON 數組中的每個對象都會進行此轉換,以生成存儲在原始示例中的變量中的 CSV 行列表。rowItems
為了生成最終的 CSV 輸出,我們將 和 組合成一個數組,使用擴展語法 ()。headerString rowItems...
然后,我們在此數組上調用 join(),并將字符串作為分隔符,以創建一個字符串,其中包含 CSV 標頭,每個 CSV 行位于單獨的行中。'\r\n'