JSON を CSV に変換する方法:まずデータ構造を確認してから作業する
JSON を CSV に変換する方法は、データがフラット構造かネスト構造かによって変わります。フラットな配列はそのまま表にマッピングできますが、ネストしたオブジェクトは先にフラット化するか、複数行に展開する必要があります。以下では、データ構造、操作手順、よくあるエラーの3つの観点から全体の流れを説明します。
JSON を CSV に変換するとは何かを理解することが、変換方法を選ぶ前提となります。JSON はキーと値のペアおよび配列で階層関係を表現し、CSV はカンマ区切りの2次元行列表現のみです。両者の表現力は対等ではないため、変換プロセスには必ず取捨選択が伴います。
JSON を CSV に変換するとは
JSON を CSV に変換するとは何かは、2つの文に分解して理解できます。JSON は階層を持つテキスト形式であり、CSV は純粋な2次元表形式です。変換の本質は、階層を行と列に平坦化することです。配列内の各オブジェクトは通常1行になり、オブジェクト内のキーがヘッダーになります。
注意すべき点は、オブジェクトの中にさらにオブジェクトや配列がある場合、平坦化の方法が1つではないことです。内側のキーを user.name のようなパス名に結合することも、配列を複数行に分割して外側のフィールドを繰り返すこともできます。どちらを選ぶかは、後で表でどのような集計を行うかによって決まります。
作業前に JSON の形状を判断する
ファイルを開いてまず最も外側の記号を確認します。このステップで後の手戻りの大部分を省けます。
- 最も外側が角括弧
[:中身はオブジェクトの配列で、最も理想的なケースであり、直接変換できます。 - 最も外側が波括弧
{:まずリストを保持するキー(例:data、items、records)を見つけ、その値を変換対象にします。 - フィールド内にさらにネストがある:先にパス名を結合するか、配列を複数行に展開するかを決めます。2つの結果は全く異なります。
- フィールド名が統一されていない:オブジェクトごとに出現するキーが異なり、欠落したキーは空になります。これが想定通りか事前に確認する必要があります。
形状を判断するこのステップを終えれば、後のエラーの9割は事前に回避できます。
JSON を CSV に変換する方法:ステップごとの操作
- 元の JSON をテキストエディタにコピーし、エンコーディングが UTF-8 であることを確認して、中国語が文字化けするのを避けます。
- 実際の配列階層を見つけます。最も外側がオブジェクトの場合、まずリストがあるキーを特定します。
- JSON を変換ツールの入力欄に貼り付けます。ツールはブラウザ上でローカルに解析し、データはアップロードされません。
- 区切り文字を選択します。デフォルトのカンマで問題ありません。フィールド内容自体にカンマが含まれる場合は、セミコロンに変更するか引用符で囲みます。
- ネストされたフィールドの処理方法を選択します。パス名の結合は完全な情報を保持するのに適し、行への展開はグループ集計に適します。
- プレビューのヘッダーが想定と一致するか確認します。特に
0、1のような配列インデックス列が余分にないか注目します。 - CSV をエクスポートし、表計算ソフトで開いて、列数と行数が元の配列長と一致するか確認します。
ブラウザローカル変換ツール で上記の手順を実行すれば、ネットワーク経由でデータを送信する必要はありません。
JSON を CSV に変換できない:よくある原因とトラブルシューティング
JSON を CSV に変換できない場合、多くはツールが壊れているのではなく、入力自体が変換条件を満たしていないことが原因です。以下の順序で確認すれば、ほぼ問題を特定できます。
- 構文エラー:カンマが多い、引用符が少ない、二重引用符の代わりに単一引用符を使っているなど、パーサーが直接拒否します。
- 最も外側が配列でない:多くのツールはオブジェクトの配列のみを受け付け、単一のオブジェクトではエラーになります。先に角括弧で囲む必要があります。
- 配列に非オブジェクト要素が混在:オブジェクトと文字列や数値が混在していると、ヘッダーを統一できません。
- フィールド数の差が大きすぎる:あるオブジェクトは数十のキーを持ち、あるものは1つだけだと、ヘッダーが非常に広くなります。
- エンコーディング問題:ファイルに BOM が付いている、または非 UTF-8 エンコーディングを使用していると、中国語はエラーではなく文字化けとして表示されます。
入力が有効であることを確認しても失敗する場合は、データの先頭5件を切り出して個別に試すと、データの問題かサイズの問題かを素早く区別できます。
JSON を CSV に変換する大容量ファイル:サイズとメモリの処理
JSON を CSV に変換する大容量ファイルは、メモリで詰まりやすいです。ブラウザ方式ではファイル全体をメモリに読み込んでから解析するため、ファイルが大きいほど使用量が増え、数百メガバイト以上になるとタブが応答しなくなる可能性があります。
処理の考え方は3つあります。1つ目は、時間や業務フィールドでソースファイルを分割し、バッチ変換してから結合する。2つ目は、変換に不要なフィールドを削除してサイズを減らす。3つ目は、ツールがストリーミング処理をサポートしているか確認し、サポートしていなければ一度にファイル全体を投入するのを避けることです。
エクスポート後の CSV もサイズに注意が必要です。一部の表計算ソフトには行数の上限があり、超えた部分は切り捨てられます。変換前に事前に行数を見積もってください。
JSON を CSV に変換することとオンライン表計算変換の違い
JSON を CSV に変換することとオンライン表計算変換の違いは、主に処理対象にあります。前者は開発者向けで、入力は API が返す生のテキスト、出力はプログラムやデータ分析に使うファイルです。後者は日常業務向けで、入力も出力も既に整形された表計算ファイルです。
具体的な違いは3点に現れます。変換方向が一方向か双方向か、表内の数式や書式を保持できるか、データ構造を理解する必要があるか。JSON を CSV に変換することとオンライン表計算変換の違いは、エラー許容戦略にもあります。前者は構文エラーに一切容赦しませんが、後者は通常、セル内容を自由に入力できます。
API デバッグでの JSON を CSV に変換:レスポンスを読める表にする
API デバッグでの JSON を CSV に変換は頻繁なシナリオです。API が返すレスポンスボディは多層にネストしていることが多く、直接見てもフィールドの確認が難しいですが、表に変換すればどのフィールドが空か、どのフィールドの型が違うかが一目でわかります。
方法は、レスポンスボディをツールの入力欄にコピーし、リストがあるキーを重点的に確認することです。ページネーション API は通常、データを data.list のようなパスに置きます。id、name、created_at を含む列は優先的に確認してください。API デバッグでの JSON を CSV に変換時に、ある列が丸ごと空白なら、多くの場合フィールドパスの階層を間違えています。
よくある質問
フィールド自体にカンマがある場合はどうするか
そのフィールド全体を引用符で囲めば、カンマは区切り文字ではなく内容として扱われます。エクスポート後に表計算ソフトで開き、1列が2列に分割されていないか確認するのが、正しく処理されたかを判断する直接的な方法です。
ネストしたオブジェクトが変換後に長い文字列になる場合はどうするか
これはデフォルトの平坦化の結果で、内側のキーがパス名に結合されています。一部のフィールドだけを保持したい場合は、変換前に不要なネスト構造を削除すると、ヘッダーがかなりすっきりします。
中国語が文字化けする場合はどう解決するか
まずソースファイルが UTF-8 エンコーディングであることを確認します。ソースファイルが正常でエクスポート後に文字化けする場合は、表計算ソフトで開く際に正しいエンコーディングを選択したか、デフォルトエンコーディングで直接開いていないか確認してください。
変換後の行数が配列長より少ない
通常、キーフィールドが欠落したオブジェクトがスキップされたか、ツールがデフォルトで重複排除しています。元の配列長とエクスポート行数を照合し、差分が破棄されたレコード数です。
元のフィールド順序を保持できるか
多くのツールは最初に出現したキーの順序でヘッダーを生成します。順序が想定と異なる場合は、ソースデータでキーの並びを統一するか、変換後に列順を手動で調整できます。
まとめ
JSON を CSV に変換する方法の核心は3ステップです。データ形状を判断し、ネストされたフィールドの処理方法を決め、エクスポートされた行と列が元データと一致するか確認する。まず小さなサンプルで流れを通し、その後完全なファイルを処理すれば、ほとんどの手戻りを避けられます。直接試したい場合は、/tools/json-to-csv でローカルに変換を完了できます。