ダメ元エンジニアのお勉強おメモ

ほとんど自分用のメモです。AWS をよく触ります。Web アプリとか作ります。Raspberry Pi も好きです。

TypeScript で JSON を CSV に変換する

追記

自作するのではなく、下記のライブラリを使う方が良さそう。

github.com

import { Parser } from 'json2csv';

const parser = new Parser({
  fields: ['userId', 'username', 'age'],
  withBOM: true,
});

console.log(parser.parse({ ... }));

BOM 有無を boolean で切り替えることが可能。

-- ここから追記入れる前の内容 --

参考

qiita.com

がっつり参考にさせて頂きました。とても助かりました。

ソースコード

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

便利だ。