CSVの各行をJSONオブジェクトとして変換

CSVの各行を名前付きプロパティを持つ独立したJSONオブジェクトに変換する方法。マッピングロジック、エッジケース、オブジェクト形式と配列形式の選択基準を解説。

Basic Conversion

詳細な説明

CSVの行をJSONオブジェクトにマッピング

CSVをJSONに変換する際、通常は各行をJSONオブジェクトにしたいと考えます。キーはヘッダーから、値は各カラムの値から取得されます。これが最も一般的で有用な出力形式です。

マッピングロジック

nカラムとmデータ行のCSVから、m個のオブジェクト(各nプロパティ)の配列が生成されます。

JavaScriptでの実装

function csvToJsonObjects(csv) {
  const lines = csv.trim().split("\n");
  const headers = lines[0].split(",").map(h => h.trim());
  return lines.slice(1).map(line => {
    const values = line.split(",");
    const obj = {};
    headers.forEach((key, i) => {
      obj[key] = values[i]?.trim() ?? "";
    });
    return obj;
  });
}

オブジェクト形式 vs 配列の配列

形式 利点 欠点
オブジェクトの配列 自己文書化、キーで検索しやすい 出力が大きい、キー名が繰り返される
配列の配列 コンパクト、カラム順序を保持 別途ヘッダーメタデータが必要

APIで消費される、ドキュメントデータベースに保存される、フィールド名でアクセスするコードで処理される場合はオブジェクトを選択します。

エッジケース

  • ヘッダーより短い行: 欠損値は""またはnullにデフォルト設定
  • ヘッダーより長い行: 余分な値は通常破棄される
  • 完全に空の行: 空のオブジェクトを避けるためスキップする

ユースケース

ユーザーがCSVの連絡先リストをアップロードし、バックエンドが各行を個別の連絡先JSONオブジェクトとして処理するCRMアプリケーションのデータインポート機能を構築する場合に使用します。

試してみる — CSV ↔ JSON Converter

フルツールを開く