JSON を CSV に変換
最終更新:2026年10月1日
JSON のオブジェクト配列を CSV の表に変換します。各オブジェクトが 1 行になり、キーが列になります。スプレッドシートが期待する規則で引用符を付けます。すべてブラウザ内で完結し、データは端末から出ません。
この変換が行うこと
CSV ファイルは、テキストで書かれた表です。1 行が 1 レコードで、セルの間は区切り文字で分け、先頭の行に列名を並べます。JSON にはこの形がありません。両者が出会う最も自然な点はオブジェクトの配列です。各オブジェクトが 1 レコードで、そのキーがフィールド名になります。API がリストを返すときの形がまさにこれなので、この変換ツールはまずこれを受け付けます。
[{"id":1,"name":"Ada"},{"id":2,"name":"Grace"}] を与えると、出力はヘッダー行 id,name と、続く 2 行 1,Ada と 2,Grace になります。以下の規則を除いて、並べ替えも値の書き換えも行いません。
表になる JSON の形
- オブジェクトの配列——各オブジェクトが 1 行、ヘッダーは全キーの和集合。
- 配列の配列——そのまま行として使い、ヘッダーは推測しません。すでに形を整えたデータ向けです。
- 単一のオブジェクト——1 行として扱い、キーをヘッダーにします。
- 値の配列——名前のない 1 列。
- それ以外——単独の数値・文字列・
nullは表ではないため、黙って作り替えずエラーとして報告します。
「和集合」という点が重要です。一部のレコードに phone キーがあり他にない場合でも、ヘッダーには phone が含まれ、それを持たない行はそのセルが空になります。列が落ちることはありません。その結果、構造が揃っていない JSON では、多くのセルが空の列を持つ表になります。
ネストした値はテキストになる
セルに入るのはテキストだけなので、値の中にネストしたオブジェクトや配列は、コンパクトな JSON としてセルに書き出されます。{"address":{"city":"London"}} はセル {"city":"London"} になります。情報は残りますが、もはや構造化されてはいません。この変換ツールは address.city をドット付きの列に分解しません。ドット付きの列が欲しい場合は、先に JSON を平坦化してください。それはモデリングの判断であり、整形の問題ではありません。
引用符・区切り文字・改行
出力は RFC 4180 に従います。これはすべてのスプレッドシートと CSV ライブラリが合意している規則です。
- フィールドが引用符で囲まれるのは必要なときだけです。区切り文字、二重引用符、改行、先頭・末尾の空白を含む場合です。
- 引用符内の二重引用符は 2 つに書かれ、テキストは正確に再現されます。
- 行は CRLF(復帰+改行)で終わります。仕様が定める組み合わせです。
区切り文字は選べます。既定はカンマですが、小数点にカンマを使う環境ではセミコロンのほうが安全です。そうでないとカンマ区切りのファイルはそこで曖昧になります。タブとパイプは、データ自体にカンマが含まれる場合に使えます。
Excel で文字化けさせないために
Excel は UTF-8 を無条件に読むわけではありません。バイト順マークのない .csv を渡すと、エンコーディングを推測し、しばしば古いコードページを選んで、アクセント付きの文字や CJK の文字を壊します。Excel 用 BOM を追加のオプションは、ダウンロードするファイルの先頭に 3 バイトの UTF-8 マークを付けて、Excel が正しく解読できるようにします。ダウンロードにのみ適用され、ここに表示されるテキストはそのままです。
CSV に持ち帰れないもの
CSV はテキスト形式であり、情報が失われます。どの値が数値・真偽値・null だったかを忘れ、ネストはテキストへ平坦化されます。null と空文字列はどちらも空のセルになり、数値はその桁の並びになります。JSON に戻すと、もう一方のページで型の自動判定を有効にしない限り文字列になります。有効にしても、007 のようなコードは先頭のゼロを保つために文字列のままにする必要があります。型が重要なときは元の JSON を残し、CSV は書き出し先であって正本ではないと考えるのがよいでしょう。
よくある質問
どんな形の JSON を CSV に変換できますか?
CSV は表なので、最も自然な入力はオブジェクトの配列です。各オブジェクトが 1 行になり、そのキーが列になります。配列の配列はそのまま行として使われ、単一のオブジェクトは 1 行に、単純な値の配列は 1 列になります。それ以外——単独の数値や文字列、null——は表ではないため拒否されます。
オブジェクトごとにキーが違う場合はどうなりますか?
ヘッダーは配列内に現れたすべてのキーの和集合で、最初に現れた順に並びます。そのキーを持たない行は、対応するセルが空になります。構造が揃っていない JSON から作った CSV に、ほとんどの行で空になる列ができるのはこのためです。
ネストしたオブジェクトや配列はどう扱われますか?
CSV にネストはないため、値そのものがオブジェクトや配列の場合は、コンパクトな JSON テキストとしてセルに書き出されます。情報は保たれますが、もはや構造化されてはいません。この変換は文字列化によって平坦化するのであって、ネストしたキーをドット付きの列に分解するのではありません。
フィールドが引用符で囲まれるのはどんなときですか?
フィールドが区切り文字、二重引用符、改行、または先頭・末尾の空白を含むときに引用符で囲まれます。引用符内の二重引用符は 2 つに書き換えられるので、テキストは正確に再現されます。これが RFC 4180 の規則であり、1 つのセルにカンマや改行を入れられる理由です。
Excel で CSV が文字化けするのはなぜですか?
Excel は .csv ファイルのエンコーディングを推測し、バイト順マークがなければ古いコードページを選んでしまうことが多く、その結果、アクセント付きの文字や CJK の文字が壊れます。BOM オプションをオンにすると、ダウンロードするファイルの先頭に U+FEFF が付き、Excel は UTF-8 として解読します。BOM はダウンロードにのみ付き、ここに表示されるテキストには影響しません。
JSON から CSV への変換は可逆ですか?
いいえ。CSV はテキストを保存するため、どの値が数値・真偽値・null だったかを忘れ、ネストはテキストとしてしか表せません。CSV を JSON に戻すと、型の自動判定を有効にしない限り文字列になります。型を正確に戻す必要があるなら、元の JSON を残してください。
逆の方向が必要ですか?CSV を JSON に変換 では表をオブジェクト配列に読み戻せます。不具合を見つけましたか?お問い合わせ。