JSON から CSV への変換
左側にオブジェクトの JSON 配列を貼り付けると、右側に適切に引用された CSV が表示されます。ヘッダーはオブジェクトキーから。アップロードなし。
- 左側のテキストエリアにオブジェクトの JSON 配列を貼り付けます。
- 「CSV に変換」をクリック。ヘッダー行はオブジェクトキーの和集合から作られます。
- 結果をコピーするか、data.csv としてダウンロードします。
- ネストされた値はフィールドが JSON 文字列化されます — フラットな列が必要なら事前に平坦化してください。
何ができるのか?
オブジェクトの JSON 配列を RFC 4180 CSV に変換します。ヘッダー行はすべてのオブジェクトのキーの和集合です。値にカンマ、引用符、改行が含まれる場合は CSV 引用符で囲まれます。数値とブール値は引用符なしで出力され、null と undefined は空フィールドになります。ネストされた値(オブジェクト、配列)は引用符付きの単一フィールドに JSON 文字列化されます — CSV はネイティブに階層を表現できません。
例
JSON 入力:
[
{"name":"Ada","age":36,"role":"engineer"},
{"name":"Grace","age":40,"role":"scientist"}
] CSV 出力:
name,age,role
Ada,36,engineer
Grace,40,scientist JSON から CSV のよくある落とし穴
CSV はフラットなフォーマットです。「変な」出力のほとんどは、フラット表現を持たない JSON 形状に由来します。
- トップレベルが配列でない。 JSON オブジェクト `{"a":1,"b":2}` は直接 CSV にできません — 配列で包んでください: `[{"a":1,"b":2}]`。CSV にはヘッダー 1 行とデータ 1 行ができます。
- 行ごとにキーが異なる。 最初のオブジェクトに `{a,b}`、二番目に `{a,c}` がある場合、ヘッダーは和集合の `a,b,c` です。キーが欠けている行は空フィールドを出力します。より厳密なスキーマが必要なら事前処理してください。
- ネストされた値が暗黙的に平坦化される。 `{"address":{"city":"NY"}}` のようなフィールドは値が JSON 文字列 `{"city":"NY"}` の単一 CSV 列になります。`address.city` 別カラムが必要なら先に JavaScript で平坦化: `{address_city: row.address.city}`。
- 値内の改行。 JSON 値内の複数行文字列は、引用符の中に文字どおりの `\n` を含む引用付き CSV フィールドになります。多くのスプレッドシートは正しく処理しますが、一部の古いツールは扱えません。
- ヘッダーの特殊文字。 カンマ、引用符、改行を含む JSON キーは動作しますが、一部の CSV コンシューマがヘッダー行をうまく解析できません。最大の互換性が必要な場合は、変換前にキーを英数字とアンダースコアに変更してください。
- JSON の末尾カンマ。 `[{"a":1},]` は無効な JSON です(最後の要素の後の末尾カンマ)。パーサは CSV ステップ前に拒否します。多くの JSON フォーマッタはこれらを取り除きます — 必要なら先に `/json-prettifier` を通してください。
よくある質問
タブ区切り出力(TSV)を取得するには?
このページはカンマ区切り CSV を出力します。TSV にしたい場合は結果の `,` を `\t` に置き換えるか、コマンドラインで `delimiter: "\t"` 付きで PapaParse を実行してください — 同じライブラリです。
ヘッダー行のキー順序は保持されますか?
はい — ヘッダー行は、すべてのオブジェクトを通じてキーが最初に登場した順序を使用します。アルファベット順が必要なら、貼り付け前に JSON 内でキーをソートしてください。
日付はどう扱われますか?
JSON にネイティブな Date 型はありません — 日付は通常すでに ISO 8601 文字列としてシリアライズされており、そのまま通過します。JSON.stringify で Date が変換された場合、その時点で ISO 文字列になっています。
JSON → CSV → JSON のラウンドトリップは可能?
フラットなオブジェクト配列なら可能です。文字列は文字列のまま、数値は数値のまま(PapaParse の動的型付けでインポート時)。ネストされた値は CSV 側で構造を失い、ネストされたオブジェクトとしてではなく JSON 文字列フィールドとして戻ります。
JSON はどこかにアップロードされますか?
いいえ。すべてはあなたのブラウザで実行されます — JSON はこのページの JavaScript で解析・変換され、サーバーに送信されることはありません。ブラウザの開発者ツールで確認してください。
どれくらい大きな JSON ファイルを変換できますか?
約 50 MB まではブラウザのテキストエリアが快適に動きます。変換自体は入力サイズに対して線形ですが、ボトルネックはレンダリングです。より大きいファイルはコマンドラインで PapaParse を実行してください。