Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

[Node]在node中轉換JSON成CSV(JSON to CSV)

內容目錄

在node中轉換JSON成CSV(JSON to CSV)

新年快樂!這篇純粹做一個小筆記,常常做資料處理的話一定很常遇到這類需求,將JSON轉換成CSV(JSON to CSV),當然也會有反過來的狀況,那就有機會再寫吧XD

我這次採用json-2-csv這個套件,本篇就整理一下json-2-csv的用法囉。

安裝套件

$ npm install json-2-csv --save

基本用法

範例如下,以下範例接用require引入

// require json-2-csv module
const converter = require('json-2-csv')

// 定義一個JSON資料
const rawJson = [
  {
    id: 1,
    title: '標題1',
    description: '標題1的敘述'
  },
  {
    id: 1,
    title: '標題3',
    description: '標題3的敘述'
  },
  {
    id: 3,
    title: '標題3',
    description: '標題3的敘述'
  }
]

// 轉換JSON到CSV中的欄位字串
converter.json2csv(rawJson, (err, csv) => {
  if (err) {
    throw err
  }

  // 輸出CSV字串資料
  console.log(csv)
  /*會長這樣
    id,title,description
    1,標題1,標題1的敘述
    2,標題2,標題2的敘述
    3,標題3,標題3的敘述
  */
})

輸出CSV檔案

使用fs輸出字串就可以囉

const fs = require('fs')
...
...
// 轉換JSON到CSV中的欄位字串
converter.json2csv(rawJson, (err, csv) => {
  if (err) {
    throw err
  }

  // 輸出CSV字串資料
  console.log(csv)

  // 輸出CSV檔案
  fs.writeFileSync('json2csv.csv', csv)
})

從檔案讀取JSON

// 從檔案讀取JSON
const todos = JSON.parse(fs.readFileSync('rawJson.json'))

await寫法

// 轉換JSON到CSV中的欄位字串
(async () => {
  try {
    const csv = await converter.json2csvAsync(todos)

    // 輸出CSV字串資料
    console.log(csv)

    // 輸出CSV檔案
    fs.writeFileSync('json2csv.csv', csv)
  } catch (err) {
    console.log(err)
  }
})()

json-2-csv非常簡單使用,參考文件在這邊

那就祝大家新年快樂囉!