本文へ移動
ZEKILO Dev

JSON ↔ CSV 変換

オブジェクトの配列のJSONを貼り付けるとCSVの表に変換します。方向を切り替えるとCSVをJSONに変換します。

入力はブラウザの外に出ませんRFC 4180RFC 8259基準日 2026.10.03

入力 · JSON

Escを押してからTabを押すと、入力欄から移動できます。

出力 · CSV

JSON ↔ CSV 変換の使い方

  1. 1入力欄にオブジェクトの配列のJSONを貼り付けるか、「例を入れる」を押します。CSVを入力するときは、方向を CSV → JSON にします。
  2. 2区切り文字などのオプションを選ぶと、結果がすぐに変わります。「入れ替え」を押すと、結果を逆方向に変換します。
  3. 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 公開
オープンソースライセンス →
結果がおかしい場合は、エラーを報告する(入力内容は添付されません)