JSONをCSVに変換
JSONのオブジェクト配列をCSV形式に変換します。REST APIのレスポンスデータをExcelやスプレッドシートで扱いたい場合に便利です。
JSONをCSVに変換するとは
APIから受け取ったJSONは機械が扱う前提の形式なので、そのままでは表計算ソフトで開けません。このツールはJSONのオブジェクト配列を読み取り、キーを見出し行、各要素を1行としたCSVへ変換します。ExcelやGoogleスプレッドシートで集計・並べ替えができる形になります。
前提が2つあります。1つは対象がオブジェクトの配列であること。単一のオブジェクトは配列で囲んでから入力してください。もう1つは深い入れ子の扱いです。値がオブジェクトや配列の場合は列に展開されず、JSON文字列としてそのままセルに入ります。事前に平坦化しておくと扱いやすくなります。
JSON→CSV変換の手順
- JSONを貼り付ける オブジェクトの配列を入力欄に貼り付けます。APIのレスポンスをそのままコピーして構いません。
- 変換結果を確認する キーが見出し行になり、要素ごとに1行が並びます。想定した列が出ているかを確認してください。
- CSVをダウンロードする 文字コードはUTF-8です。Excelで開いて文字化けする場合は、インポート時にUTF-8を指定してください。
使いこなすためのヒント
- 変換対象は JSON のオブジェクト配列(
[{}, {}, ...])形式です。単一オブジェクトには対応していません。 - REST API のレスポンスデータを Excel や Google スプレッドシートで扱いたい場合に便利です。
- 深いネスト構造を持つオブジェクトや配列の値はフラット化されず、JSON文字列(例:
{"a":1})として出力されます。 - ダウンロードした CSV の文字コードは UTF-8 です。Excel で文字化けする場合は UTF-8(BOM 付き)として読み込んでください。
JSON→CSV変換の活用シーン
APIのレスポンスを集計する
取得したデータをCSVに直せば、表計算ソフトの関数やピボットテーブルでそのまま集計できます。
非エンジニアへ共有する
JSONのまま渡しても読めない相手に、表形式で渡せます。確認や修正の依頼がしやすくなります。
データ移行の中間形式にする
CSV取り込みに対応したツールへデータを移す際の変換に使えます。多くのサービスがCSVインポートに対応しています。
件数や欠損を確認する
表にすると行数や空欄が目で見て分かります。想定した件数が揃っているかの点検に向いています。
JSON・CSVの用語
- オブジェクト配列
[{...}, {...}]の形で複数のオブジェクトを並べた構造です。表の各行に対応するため、CSVへ変換できます。- キー
- オブジェクト内で値を指す名前です。CSVでは見出し行の列名になります。
- ネスト
- 値の中にさらにオブジェクトや配列が入っている入れ子構造です。表形式に素直に収まらない部分になります。
- フラット化
- 入れ子を展開して1階層に直すことです。事前に行っておくとCSVの列として扱えます。
- BOM
- ファイル先頭に付ける文字コードの目印です。UTF-8のCSVをExcelで正しく開かせたいときに使われます。
よくある質問
[{}, {}])のみです。単一オブジェクト({})を変換したい場合は、配列で囲んでください(例: [{}])。{"a":1})として出力されます。ネストを解消してからCSVに変換することをお勧めします。
余談ですが ― JSONの誕生秘話 ― 「発明」ではなく「発見」
JSON(JavaScript Object Notation)は、Douglas Crockfordが2001年頃に考案しました。彼は「自分がJSONを 発明したわけではなく、発見した」と語っています。JavaScriptにもともとあったオブジェクトリテラルの記法をデータ交換フォーマットとして標準化したものだからです。
2006年頃からAjax(非同期通信)の普及とともにJSONは急速に広まり、XMLの冗長な記法と比べてシンプルなJSONが開発者に支持されました。当初「JSONはXMLの代替にはならない」と批判する声もありましたが、今やREST APIの標準的なデータ形式として完全に定着しています。
面白い余談として、CrockfordはJSONの仕様書の著作権表示に「The Software shall be used for Good, not Evil.」という条項を入れており、Google・IBMなど大企業の法務部が「善悪の判断をするのは我社ではない」として正式ライセンス取得を求めるという小さな騒動があったことで知られています。