本文へスキップ

JSON⇄CSV変換

JSON ⇄ CSV

入れ子のJSONをドット記法の列名で平らに開くか、表からオブジェクトを組み直します。

JSONのオブジェクト配列を表計算の表に変えます。レコード1件が1行、キー1つが1列です。難しいのは表に置き場のないもの——入れ子のオブジェクト、配列、そしてキーが揃っていないレコード——をどう扱うかで、それはページ上部で自分で選ぶようになっています。

🔒 ブラウザの中だけで動きますjsoncsvconverttable
入れ子のオブジェクト

user.address.city がそれぞれ独立した列になります。

配列の値

tags.0, tags.1 — いちばん横に広がりますが、何も失いません。

行ごとに違うキー

値のないところは空のセルになります。

JSON入力

.json ファイルを置く

このタブの中で読みます。アップロードはしません。

CSV出力

区切り文字

ダウンロードするファイルにはUTF-8のBOMが付きます。Windows版Excelが日本語をCP932(Shift_JIS)として読まないようにするためです。コピーボタンはBOMなしのテキストを渡します。

使い方

  1. オブジェクトの配列を貼り付けます

    表が求めるのはこの形です。オブジェクト1つなら1行になり、配列を包んだオブジェクト——APIがよく返す`{ "data": [...] }`の形——は自動で外し、そのことを下に表示します。

  2. 入れ子をどこまで開くかを決めます

    ドット記法を選ぶと`user.address.city`がそれぞれ列になります。シートを絞り込んだりピボットしたりするならこちらです。1段目だけを選ぶと`user.address`はJSONの入った1つのセルとして残り、幅が狭く、元にも戻しやすくなります。

  3. 配列の扱いを決めます

    要素ごとに列(`tags.0`、`tags.1`)にすると何も失いませんが、文書の中でいちばん長い配列に合わせて表が広がります。連結は1つのセルに`a; b; c`と入れる形で、読みやすくなります。JSONのままは角括弧を残すので、後の工程でもう一度パースできます。

  4. プレビューで列の型を確かめます

    列見出しには値が実際に持っていた型が付き、欠けているレコードがあれば「ある件数/全体」も並びます。`mixed`と出た列は、たいてい後で問題になる場所です。

  5. CSVでダウンロードするか、TSVでコピーします

    CSVのダウンロードには先頭にUTF-8のBOMを付けてあるので、WindowsのExcelでも日本語がそのまま開きます。ファイルを開くのではなくシートに貼り付けるなら、TSVに切り替えてコピーボタンを使ってください。

よくある質問

Excelで日本語が文字化けするのはなぜですか

BOMなしで保存されたファイルだからです。日本語版WindowsのExcelは、BOMのないUTF-8のCSVをいまだにCP932(Shift_JIS)と推測します。ここのダウンロードボタンはBOMを付けます。コピーボタンは意図的に付けません。テキストエディタに貼り付けたとき、BOMが余計な文字として見えてしまうためです。

CSVからJSONへ戻せますか

このページは一方向だけです。そもそも往復には必ず損失があります。ドットの付いた列名はオブジェクトに組み直せますが、連結した配列は、たまたまセミコロンが入っていた文字列と区別できません。

キーが揃っていないレコードはどうなりますか

「不揃いの行」の設定がそれにあたります。すべてのキーは全部を残して空欄を置き、共通のキーのみは全レコードにない列を落とし、先頭行のキーは1件目をスキーマとみなして残りを黙って無視します。既定としては1番目が安全で、不揃いのファイルを受け付けない取り込み側があるなら2番目を選びます。

大きな数値はそのまま残りますか

パースはブラウザが行うので、2^53を超える数値は表を組む前にすでに丸められています。表計算ソフトは開くときにもう一度丸めます。長いidはJSONの中で文字列にしておくのが正しく、それでもExcelが書式を付け直すことがあるため、シートでは先頭にアポストロフィを置いて防ぐのが普通です。

ここから渡せます

次の一手

このツールが出したものをそのまま受け取れる道具です。