JSON から CSV への列展開
JSON を CSV にする前に、どんな列になるかを確かめる。
オブジェクトが並ぶ JSON の配列を貼り付けると、CSV にしたときの列と行を表で確かめられます。入れ子のオブジェクトは「user.name」のようなドット区切りの列名になります。カンマや引用符を含む値は RFC 4180 の規則で引用符で囲んだ CSV として、コピー・保存もできます。入力はブラウザの中だけで処理します。
JSON の配列を CSV の列に展開して確かめる
入力した内容は送信されません。貼り付けた文字や選んだファイルは、お使いのブラウザの中だけで処理します。本サイトのサーバーや第三者へ送信・保存しません(通信を禁止する設定でページを配信しています)。
結果
エラー 0 件・警告 0 件・情報 1 件
指摘(エラー・警告・情報)
- 情報 全体 null(1 個)と、その行にない項目(0 個)は、どちらも空欄のセルになります。CSV では「値が空」と「項目がない」と「null」を区別できません。
| 判定 | 2 行 × 3 列に展開しました |
|---|---|
| 行数 | 2 行 |
| 列数 | 3 列 |
| 引用符で囲むセル | 0 個 |
CSV にしたときの表
| id | user.name | user.age |
|---|---|---|
| 1 | 田中 | 30 |
| 2 | 鈴木 |
初期表示は入力例「入れ子のオブジェクトがドット区切りの列になる」の結果です。入力を変えるとその場で処理し直します。判定の根拠は仕様と根拠にまとめています。
ご利用にあたって
- 展開の結果は、JSON の構造をそのまま表にしたものです。取り込み先のソフトの仕様(列の数の上限、セルの文字数の上限など)は確認していません。
- 大きな JSON はお使いの端末の性能によって処理に時間がかかることがあります。
使い方
- 展開したい JSON の配列をテキスト欄に貼り付けるか、JSON ファイルを選びます。配列の要素がオブジェクト { … } であるものが対象です。
- 配列の値(tags: ["a", "b"] など)の扱いを選びます。1 つのセルにまとめるか、tags.0・tags.1 のように添字をつけた列に分けるかを選べます。
- 表で列名と各行の値を確かめます。入れ子のオブジェクトは「user.name」のように、ドットでつないだパスが列名になります。
- 指摘で、空欄になるセルや、引用符で囲まれるセルの数を確かめ、問題がなければコピーまたはダウンロードします。保存される CSV は RFC 4180 の規則で引用符を付けます。
入力例と結果
代表的な入力・境界の入力・壊れた入力の例です。例ごとに入力・出力・指摘と、その結果になる理由(検算)を載せています。
| 入力例 | 結果 |
|---|---|
| 入れ子のオブジェクトがドット区切りの列になる | エラー 0 件・警告 0 件・情報 1 件 |
| カンマ・引用符・改行を含む値 | エラー 0 件・警告 0 件・情報 1 件 |
| 配列の値を 1 つのセルに入れる | エラー 0 件・警告 0 件・情報 1 件 |
| 配列の値を添字つきの列に分ける | エラー 0 件・警告 0 件・情報 1 件 |
| 行によって項目が違う | エラー 0 件・警告 0 件・情報 1 件 |
| オブジェクトでない要素がある | エラー 0 件・警告 1 件・情報 1 件 |
このツールでできないこと(制約)
- CSV から JSON への逆変換、文字コードの変換(Excel で開く用の BOM つき UTF-8 など)、項目名の並び替えや列の選択はできません。
- 項目名にドットを含むと、入れ子のパスと区別できません。同じ列名になった場合は警告し、後の値で上書きします。
- 数値は書かれたままの文字で出力します(1.50 は 1.50)。日付や数値の書式の変換はしません。
- ファイルは UTF-8 として読みます。Shift_JIS などほかの文字コードのファイルは文字化けすることがあります。
よくある質問
入れ子の配列はどう展開されますか?
既定では、配列の値は空白を詰めた JSON のまま 1 つのセルに入ります。「添字をつけて列に分ける」を選ぶと tags.0、tags.1 のような列になりますが、要素の数が行ごとに違うと列が増えて空欄が多くなるため、内容に合わせて選びます。
CSV を Excel で開くと文字化けしませんか?
ダウンロードする CSV は UTF-8 で、BOM は付けません。Excel のバージョンによっては、直接開くと文字化けすることがあります。その場合は、Excel の「テキストまたは CSV から」の取り込みで文字コードを UTF-8 に指定して開いてください。
貼り付けた JSON はどこかに送られますか?
送られません。展開はお使いのブラウザの中だけで行い、ページは通信を禁止する設定(CSP の connect-src)で配信しています。顧客データなどでも内容を送信しませんが、共用の端末では使い終わったらページを閉じてください。