JSON を CSV 形式に変換する npm json2csv が超便利
JSON をいい感じに CSV 形式に変換してくれる npm json2csv が便利だったのでご紹介します。
前提) 適当な独自 CSV で出力しない
まず、前提として適当な独自 CSV で出力しないことです。
詳しくは、それでも独自のCSVを書くつもりですか? | POSTD に書いてあります。
console.log([ 'a', 'b', 'c' ].join(',')); |
みたいなカンマ区切りで CSV 出力しようと考えている方はかならず POSTD の記事を読みましょう。
json2csv の使い方
個人的によく使うパターンで json2csv のサンプルコードを書いてみたのが以下です。
const Json2csvParser = require('json2csv').Parser; const fields = ['jan', 'price', 'description']; const products = [ { "jan": "001", "name": "spam", "price": 1000, "description": "spam, spam" }, { "jan": "102", "name": "hoge", "price": 2000, "description": "hoge\" hoge" }, { "jan": "203", "name": "fuga", "price": 3000, "description": "fuga fuga" }, ]; const json2csvParser = new Json2csvParser({ fields, header: true }); const csv = json2csvParser.parse(products); console.log(csv); // 以下、console.log(csv); の出力結果 "jan","price","description" "001",1000,"spam, spam" "102",2000,"hoge"" hoge" "203",3000,"fuga fuga" // 区切り文字は , // 文字列は " で囲まれている // " はエスケープされている // fields の文字列をヘッダーとして1行目に出力する (デフォルト true) // fields に含まれていない "name" は出力しない |
以上、Node.js で JSON をいい感じに CSV 形式に変換したい現場からお送りしました。