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