JavaScriptでJSONをCSV形式に変換する方法


方法1: 手動で変換する方法

function jsonToCsv(jsonData) {
  let csvData = '';

  // ヘッダー行を作成
  const headers = Object.keys(jsonData[0]);
  csvData += headers.join(',') + '\n';

  // データ行を作成
  jsonData.forEach((item) => {
    const values = Object.values(item);
    csvData += values.join(',') + '\n';
  });

  return csvData;
}
// 使用例
const jsonData = [
  { name: 'John', age: 30, city: 'Tokyo' },
  { name: 'Alice', age: 25, city: 'Osaka' },
  { name: 'Bob', age: 35, city: 'Kyoto' }
];
const csvData = jsonToCsv(jsonData);
console.log(csvData);

方法2: ライブラリを使用する方法

パッケージマネージャーを使用して、csv-parserとjson2csvというライブラリをインストールします。

npm install csv-parser json2csv

次に、以下のコードを使用してJSONをCSVに変換します。

const csv = require('json2csv');
const fs = require('fs');
const csvParser = require('csv-parser');
// JSONファイルを読み込み、JSONをパースしてオブジェクトに変換
fs.createReadStream('input.json')
  .pipe(csvParser())
  .on('data', (data) => {
    // dataオブジェクトをCSV形式の文字列に変換
    const csvData = csv.parse(data);

    // 変換後のCSVデータをファイルに書き込み
    fs.writeFileSync('output.csv', csvData);
  })
  .on('end', () => {
    console.log('変換が完了しました。');
  });

上記の例では、input.jsonファイルからJSONデータを読み込み、output.csvファイルに変換後のCSVデータを書き込んでいます。

これらはJSONをCSVに変換するための基本的な方法です。必要に応じて、独自の要件に合わせてコードをカスタマイズすることができます。