TypeScript で JSON を CSV に変換する
追記
自作するのではなく、下記のライブラリを使う方が良さそう。
import { Parser } from 'json2csv'; const parser = new Parser({ fields: ['userId', 'username', 'age'], withBOM: true, }); console.log(parser.parse({ ... }));
BOM 有無を boolean で切り替えることが可能。
-- ここから追記入れる前の内容 --
参考
がっつり参考にさせて頂きました。とても助かりました。
ソースコード
const json2csv = (json: Array<{ [key: string]: string | number }>) => `${Object.keys(json[0]).join(',')}\n${json .map((d) => Object.keys(d) .map((k) => d[k]) .join(','), ) .join('\n')}`
動作確認
const data = [ { userId: 'hoge', username: 'taro', age: 24, }, { userId: 'fuga', username: 'jiro', age: 19, }, { userId: 'piyo', username: 'saburo', age: 14, }, ]; console.log(json2csv(data)); // userId,username,age // hoge,taro,24 // fuga,jiro,19 // piyo,saburo,14
便利だ。