JSONからCSVへの変換ツール

JSONリストをスプレッドシートに最適なCSVファイルとしてダウンロード可能に変換します。このコンバーターはデータを検証し、安定した列順序(最初のレコードまたはすべてのキーの結合から)を構築します。オプションで指定するとネストされた構造をフラット化し、Excel、Numbers、Google Sheets、または任意のPandasスクリプトで問題なく開くCSVファイルを生成します。

コンバータの動作原理

  1. 1

    JSONを貼り付けまたはアップロードします

    複数のオブジェクトからなる配列、またはデータが単一のキー下に格納されたラップされたペイロード。

  2. 2

    列の戦略を選ぶ

    最初のレコードのキーを使う(高速で予測可能)か、すべてのレコードのキーを結合する(より網羅的)かを選びます。

  3. 3

    出力を調整する

    区切り文字、引用符のスタイル、ネスト構造のフラット化、ヘッダーの有無、Excel向けのUTF-8 BOMを設定します。

  4. 4

    ダウンロード

    `.csv`として保存し、スプレッドシートにインポートするか、`pandas.read_csv`で読み込みます。

列の並び順の戦略

  • 最初のレコードから:列は最初のJSONオブジェクトのキーと一致します。高速で決定的です。後続のレコードにのみ現れるキーは見落とされます。
  • すべてのキーの結合:すべてのレコードをスキャンし、すべてのキーを収集します。非常に大規模なデータセットでは処理が遅くなりますが、完全な列の一覧を生成します。
  • カスタム順序:カンマ区切りの列名リストを指定します。それ以外はすべて、出現した順に末尾へ追加されます。

引用符とエスケープ

RFC 4180に準拠しています:

  • カンマ、改行、またはダブルクォートを含むフィールドは、ダブルクォートで囲む必要があります。
  • 引用フィールド内のダブルクォートは、二重にすることでエスケープします。例えば He said "Hi""He said ""Hi""" になります。
  • 引用フィールド内の改行は有効ですが、すべてのインポーターが処理できるわけではありません。最大限の互換性が必要な場合は「改行をエスケープする」をオンにしてください。

データ型の保持

CSVはテキストであり、すべてが文字列です。数値列、ブール値、日付といった型のヒントは、読み込む側のパース処理に依存します。いくつかのコツを紹介します:

  • 先頭のゼロ007)はCSV内では文字列として保持されますが、Excelは何も告げずに数値へ変換します。=""007"" を接頭辞として付ける(見栄えは悪いですが機能します)か、Excelでテキストとしてインポートしてください。
  • 2^53 を超える大きな整数はExcelで精度が失われます。JSON内では文字列として保持してください。
  • ISO日付2026-04-18T10:22:00Z)は、インポート時に列がテキストとして書式設定されている場合にのみ、Excelでのやり取りを経ても保持されます。
  • ブール値true / false の文字列になります。後続の処理が 1/0 を期待する場合は、エクスポート前にマッピングしてください。

BOMとExcel

Windows版Excelでは、ファイルの先頭にUTF-8のBOM(0xEF 0xBB 0xBF)が必要です。ないと、UTF-8バイトをLatin-1として解釈し、ASCII以外の文字がすべて文字化けします。Mac版のNumbersとGoogle Sheetsはどちらにも対応しています。

よくある間違い

  • 配列ではなくオブジェクトを渡す。 このツールには {...} ではなく [{...}, {...}] が必要です。まずアンラップしてください。
  • レコードごとに異なるキー。 列の欠落を防ぐには「すべてのキーの結合」戦略を使ってください。
  • null用のセンチネル値。 一部のパイプラインは空のセルをnullとして扱い、別のパイプラインは文字列 "" として扱います。1つの規約を選び、プロジェクト全体で一貫させてください。
  • ロケールの不一致。 , でエクスポートしたデータを、; を期待する欧州版Excelで開くと列が崩れることがあります。区切り文字を対象ロケールに合わせてください。

よくある質問

配列にJSONPath(例:$.data.items)を指定するか、手動で展開してください。ツールはトップレベルオブジェクト内の単一の配列を自動的に検出しようとします。

Excelは数値のように見える文字列を積極的に数値に変換します。CSVファイルをExcelのインポートウィザードで「テキスト」としてインポートするか、エクスポート時に"007"のような値を="007"のように書式化してください(この機能は「テキスト安全モード」の有無によって実現可能です)。

はい。選択できます:区切り文字付きで結合(tags: "a,b,c")、JSON形式でシリアル化(tags: "[\"a\",\"b\"]")、または各インデックスを1列に展開する(tags.0tags.1tags.2)。

はい。Google SheetsではUTF-8および標準の区切り文字を問題なく処理できます。非常に大きなデータセット(>10 MB)については、貼り付けする代わりにIMPORTDATAを使用して読み込むことを検討してください。

関連ツール

このツールは他の言語でも利用できます