JSON to CSV — JSON 配列を CSV スプレッドシートに変換
オブジェクトの JSON 配列を CSV 形式に変換します。ネストされた構造のフラット化、セミコロン区切り、BOM プレフィックスに対応。すべてブラウザ内で行われ、アップロードは不要です。
JSON は Web API のネイティブ形式であり、CSV は「互いに通信するように設計されていない」システム間におけるデータ交換の最小公分母です。あらゆる分析パイプライン、あらゆるスプレッドシート、あらゆるデータベースのインポートウィザードは CSV を前提としており、あらゆる現代の Web サービスはデフォルトで JSON を返します。両者の相互変換はほぼすべてのデータ移行における最初のステップですが、この変換は、一見すると地味ながらも実際には極めて繊細です。なぜなら二つの形式が構造について根本的に異なる前提を置いているからです。JSON はツリー型です:ネストされ、再帰的で、深さは任意です。CSV はテーブル型です:フラットで均一で、すべての行が同じ列を持ちます。本変換器は、フラット化の方針 — 深いアクセスにはドット記法、高速なエクスポートには最上位のみ — を選び、加えてほとんどのツールが密かに間違えるエンコーディングの詳細を明示的に提示することで、二つの形式の間に橋を架けます。
実務上最も重要な三つのエンコーディングの詳細があります:UTF-8 バイト順マーク(BOM。ファイルの先頭にある目に見えない 3 バイトで、これが Excel に対して UTF-8 であることを伝えます)、英語圏(comma)とヨーロッパ圏(semicolon。カンマが小数点として使われるため)の区切り文字の不一致、そして区切り文字を含む値がフィールドの途中で分割されるのを防ぐ引用符プロトコルです。これら三つはいずれも出力オプションで設定可能で、デフォルト値は「小数点としてカンマを使うロケールの Windows 上の Excel」という最も一般的なターゲットで正しく開けるよう選択されています。
変換後の最も一般的な次のステップは、CSV をデータベースや可視化ツールに読み込むことです。行き先が SQL であれば、姉妹ツールの CSV-to-INSERT 変換器が SQL 文を直接生成できます。行き先が TypeScript や Python アプリであれば、JSON-to-TypeScript または JSON-to-Python 変換器が適切な次の一手です。これらは同じ JSON schema から型付きデータモデルを生成し、API レスポンスと CSV エクスポートが単一の信頼できる情報源を共有できるようにします。
使い方
JSON を貼り付けるかドロップする
オブジェクトの JSON 配列をドロップするか、JSON 文字列を貼り付けます。パーサーは最上位が配列であることを想定していますが、純粋なオブジェクトも受け付け、その場合は 1 行の CSV として出力されます。
区切り文字とエンコーディングを選択する
comma(RFC 4180 標準)、semicolon(ヨーロッパの Excel のデフォルト)、タブのいずれかを切り替えます。UTF-8 BOM を有効にすると、Excel を開いたときにエンコーディングが自動検出されます。
CSV をダウンロードする
結果はダウンロード可能な .csv ファイルです。ブラウザのメモリ以外にサイズ上限はなく、多数のオブジェクトを含む配列でも 1 秒未満で処理できます。
よくある質問
ネストされた JSON オブジェクトはどのように処理されますか?
デフォルトでは、ネストされたオブジェクトはドット記法の列名でフラット化されます:`user.profile.name` は `user.profile.name` という名前の CSV 列になります。ネストされたデータが不要な場合は、「フラット vs ネスト」のスイッチを切り替えて、最上位のキーのみに折りたたむことができます。
Excel で生成された CSV を正しく開けますか?
UTF-8 BOM オプションが有効であれば、開けます。Windows 版 Excel は BOM が存在する場合に UTF-8 を自動検出し、アクセント付き文字、絵文字、非ラテン文字を正しくレンダリングします。BOM がない場合、Excel はシステムの ANSI コードページにフォールバックし、非 ASCII テキストが文字化けする可能性があります。
異なるデータ型はどう扱われますか?
すべての値は文字列として出力されます。JSON の `true` は CSV の文字列 'true' になり、`null` は空のセルになり、数値はデフォルトで引用符なしで表示されます。厳密な RFC 4180 準拠(すべてのフィールドが引用符で囲まれる出力)にしたい場合は、オプションで「すべての値を引用符で囲む」を切り替えてください。
50 MB を超える JSON ファイルを扱えますか?
解析はメモリ内で行われ、ブラウザタブの利用可能な RAM によってのみ制限されます。実際には数百 MB までのファイルは問題なく変換できますが、ファイルが非常に大きい場合は解析中に UI がフリーズする可能性があります。変換前に jq のようなコマンドラインツールでファイルを分割してください。
制限事項
- 型変換は行いませんすべての出力値は文字列です。JSON に ISO 8601 日付が含まれている場合、それらは CSV にそのまま出力されます。ツールは Excel の日付シリアル番号へ再整形しません。数式に直接使える日付が必要な場合は、Excel または Google Sheets で後処理してください。
- 異種配列のフラット化は予測不能になります配列の要素が異なるキー集合を持つ場合、CSV ヘッダはすべてのキーの和集合になります。特定のキーを欠く行は対応するセルが空になります。これは CSV としては正しい挙動ですが、スキーマレスな JSON では疎な出力になる可能性があります。
- ピボットや集計は行いません本変換器は純粋なデータ整形ツールです。集計、ピボット、合計値の計算は行いません。分析や集計が必要な場合は、CSV 出力をスプレッドシートへの入力としてご利用ください。
プラットフォーム別の注意点
- macOS
- macOS の Numbers.app は、BOM が存在する場合に正しいエンコーディングで CSV ファイルを開きます。Numbers で CSV を編集して再エクスポートする予定がある場合は、エクスポート形式が「CSV UTF-8」であることを確認し、エンコーディングのずれを防いでください。
- Windows
- BOM オプションの主な動機は Windows 版 Excel です。受け手の Windows 環境の Excel が英語以外のロケールを使用している場合、必ず BOM を有効にしてください。そうでないと ASCII-127 範囲外の文字が破損します。
- Linux
- LibreOffice Calc は BOM なしで UTF-8 CSV を開けます。Google Sheets やクリップボードからのタブ区切り入力を好む Web ベースのスプレッドシートへの貼り付け互換性には、タブ区切り文字を使用してください。
- Web
- 完全にブラウザ内で動作し、ネットワークのラウンドトリップは発生しません。典型的な API エクスポートに対する変換は数ミリ秒です。