JSON ↔ CSV 変換
オブジェクトの配列のJSONを貼り付けるとCSVの表に変換します。方向を切り替えるとCSVをJSONに変換します。
入力 · JSON
出力 · CSV
JSON ↔ CSV 変換の使い方
- 1入力欄にオブジェクトの配列のJSONを貼り付けるか、「例を入れる」を押します。CSVを入力するときは、方向を CSV → JSON にします。
- 2区切り文字などのオプションを選ぶと、結果がすぐに変わります。「入れ替え」を押すと、結果を逆方向に変換します。
- 3「コピー」で結果をコピーするか、「ダウンロード」でExcelで文字化けしない .csv ファイルとして保存します。
JSON ↔ CSV 変換のオプション
- 方向
- JSON → CSV(既定)または CSV → JSON。「入れ替え」は結果を入力に移し、方向を逆にします。
- 区切り文字
- カンマ(既定)、セミコロン、タブ、縦線から選びます。CSVを読むときは、自動検出が先頭の数行から区切り文字を判定します。自分で指定することもできます。
- 入れ子のオブジェクト
- ドット区切り(既定)は入れ子のオブジェクトを a.b のような列に展開します。JSON文字列はオブジェクト全体を1つのセルに入れます。配列は常にJSON文字列として書きます。
- 改行
- CSVの行の改行です。CRLF(既定、RFC 4180)またはLF。
- ダウンロードするファイルにUTF-8 BOM
- 既定でオンです。ダウンロードする .csv ファイルの先頭に3バイト EF BB BF を付け、ExcelがUTF-8として読めるようにします。出力欄と「コピー」にはBOMは入りません。
- 1行目はヘッダー
- CSVを読むときは既定でオンです。1行目が各オブジェクトのキーになります。オフにすると、すべての行が配列になります。
- 数値を推論
- CSVを読むときは既定でオフで、すべての値が文字列です。オンにすると、JSONの数値の形で書かれた値を、書かれたとおりの数値として出力します。007 のような値は文字列のまま残ります。
このツールが書き出すCSVの形式
CSVには唯一の標準はありませんが、RFC 4180 が多くのプログラムで通用する形式をまとめており、このツールはそれに沿っています。行は最後の行も含めてCRLFで終わります。値は、区切り文字・二重引用符・改行を含むときだけ二重引用符で囲み、値の中の二重引用符は2つ重ねて書きます。値の前後の空白は値の一部なので、そのまま残します。
列は、キーが最初に出てきた順に並びます。後のオブジェクトにそれまでなかったキーがあれば右に新しい列を追加し、そのキーがない行は空のセルにします。
CSVの読み取り
引用符で囲んだセルには、区切り文字・二重引用符・改行を入れられます。入力の最後にある改行は、空の行にはなりません。引用符が閉じられていない箇所があっても、読み取れた範囲の結果を表示し、どのレコードに問題がありそうかをお知らせします。
ダウンロードするファイルにBOMを付ける理由
UTF-8のファイルにバイト順マークは必要なく、ほとんどのプログラムは無視します。Excelは例外です。マークがないと、CSVファイルをシステムの従来の文字コードとして読み込み、日本語が読めない文字に変わってしまいます。マークはダウンロードするファイルにだけ付けます。JSONの入力は RFC 8259 に沿って読み取ります。
JSON ↔ CSV 変換の例
JSONをCSVに(既定:カンマ、CRLF)
カンマ・二重引用符・改行を含む値だけを引用符で囲みます。値の中の二重引用符は2つ重ねて書きます。
入力
[{"id":1,"name":"Kim, Jr."},{"id":2,"name":"이\"민\""}]出力
id,name 1,"Kim, Jr." 2,"이""민"""
入れ子のオブジェクトと存在しないキー
入れ子のオブジェクトはドット区切りの列名になります。後のオブジェクトで初めて出てきたキーは右の列に追加されます。
入力
[{"a":{"b":1}},{"c":2}]出力
a.b,c 1, ,2
CSVをJSONに(数値を推論オフ)
すべての値が文字列のまま残るので、007 の先頭の0は消えません。
入力
id,zip 1,007
出力
[ { "id": "1", "zip": "007" } ]表にできないJSON
入力
"text"
出力
CSVの表に変換できないJSONです
例は、このツールを検証している基準ケースの値です。
JSON ↔ CSV 変換のよくある質問
入力したデータはサーバーに送信されますか?
いいえ。入力と結果はこのブラウザ内だけで処理され、保存もしません。再読み込みすると消えます。
CSVをExcelで開くと日本語が文字化けするのはなぜですか?
Excelは、ファイルの先頭にUTF-8のバイト順マーク(BOM)がないと、従来の文字コードとして読み込みます。「ダウンロード」は既定でBOMを付けるので、文字はそのまま表示されます。BOMを想定していないプログラムに渡すファイルの場合は、オプションをオフにしてください。
どんなJSONをCSVに変換できますか?
オブジェクトの配列です。オブジェクト1つが1行になります。オブジェクトを1つだけ入力した場合は1行として扱います。文字列や数値の配列などは列がないため、エラーとしてお知らせします。
入れ子のオブジェクトと配列はどう書かれますか?
入れ子のオブジェクトは address.city のようなドット区切りの列に展開するか、オプションを選ぶとJSON文字列として1つのセルに入れます。配列は常に ["x","y"] のようなJSON文字列として書きます。
007 が 7 にならず文字のまま残るのはなぜですか?
CSVには型がなく、郵便番号や商品番号のようなコードは数値として読むと先頭の0が消えてしまいます。そのため既定ではすべての値を文字列として読みます。数値を推論をオンにしても、数値になるのは正しいJSONの数値だけで、007 はJSONの数値ではありません。
大きな数値は変わりませんか?
変わりません。数値はどちらの方向でも書かれた文字のまま写すので、12345678901234567890 や 1.50 はそのまま出力されます。
関連ツール
処理方法・標準
- 処理する場所:このブラウザ(お使いの端末)。送信も保存もしません。
- 標準: RFC 4180 · RFC 8259
- エンジン: papaparse 5.7.0(CSVの読み取り) (MIT) · ZEKILO Dev JSONパーサー・CSV出力器 (自社実装)
- null と存在しない値は空のセルとして書きます。true と false は文字として書きます。
- 値は書かれたとおりに出力します。表計算ソフトは = で始まるセルを数式として扱います。
- CSVを読むとき、列が複数ある表の空行は読み飛ばします。空のヘッダーや重複したヘッダーには field2、name_1 のような名前を付けます。
- 基準日 2026.10.03
- 変更履歴: 2026.10.03 公開