APIから受け取ったJSONをExcelで集計したいときは、CSVへ変換すると表として扱えます。ただし、単純にカンマで区切るだけでは、入れ子・配列・改行・日本語の文字コードによって列ずれや文字化けが起こります。
ここでは、TOOL FARMのJSON to CSV変換を使い、変換前に確認する点、失敗しやすいデータ、Excelで安全に開く方法までを一つの手順にまとめます。入力内容と変換結果はブラウザ内で処理され、当サイトのサーバーには送信・保存されません。
変換しやすいJSONの形を確認する
CSVは「一行が一件、列が項目」という平らな表です。したがって、次のように同じ項目を持つオブジェクトの配列が最も素直に変換できます。
[
{"name":"青木","score":82,"active":true},
{"name":"木村","score":91,"active":false}
]
この例なら、name、score、activeが列名になります。このツールが受け付けるのは、1件以上のオブジェクトを含む配列です。先頭が { } の単一オブジェクトや、文字列・数値だけの配列は対象外です。行ごとに項目が異なる場合は、配列全体から列名を作り、値のないセルを空欄にします。
実際にJSONをCSVへ変換する
- JSON to CSV変換を開き、JSONを貼り付けます。
- 先頭が
=、+、-、@の文字列をExcelの数式として実行させたくない場合は、安全対策を有効のままにします。 - カンマ区切りの変換結果をプレビューし、列名と件数が想定どおりか確認します。
- 問題がなければCSVをダウンロードします。
ダウンロードするCSVには、日本語がExcelで文字化けしにくいようUTF-8のBOMが付きます。別システムへ渡す場合は、そのシステムがUTF-8 BOM付き・カンマ区切りを受け付けるか確認してください。
入れ子と配列はどう表になるか
JSONには、住所の中に都道府県と市区町村があるような入れ子構造があります。このツールでは、入れ子のオブジェクトや配列を分解せず、JSON文字列として一つのセルに格納します。
{
"name": "青木",
"address": {"prefecture": "東京", "city": "新宿区"},
"tags": ["営業", "管理職"]
}
上の例では、address列とtags列に、それぞれ元のJSON表現が入ります。Excel上で都道府県やタグを個別に集計したい場合は、変換前にJSONを平らにするか、人物表とタグ表のようにデータを分ける方が扱いやすくなります。
Excelで起きやすい4つの失敗
- 日本語が文字化けする:Excelの「データ」→「テキストまたはCSVから」で読み込み、文字コードをUTF-8にします。
- 先頭の0が消える:郵便番号・電話番号・商品コードの列は、読み込み時にデータ型を文字列へ指定します。
- 長い数字が指数表示になる:IDを数値として扱わず、文字列として取り込みます。
- カンマや改行で列がずれる:正しいCSVではセルを引用符で囲みます。手作業で置換せず、変換結果を利用してください。
変換前後のチェック項目
変換できたことと、内容が正しいことは別です。元JSONの件数とCSVの行数、必須項目の空欄、日付形式、真偽値、先頭ゼロを確認してください。秘密鍵・アクセストークン・個人情報を含むデータは、保存先や共有範囲にも注意が必要です。
JSON自体がエラーになる場合は、引用符、末尾のカンマ、括弧の対応を先に確認します。形式の基本から確認したい場合は、JSONの構造と読み方も参照してください。CSVをExcelで開いたときの文字化けは、CSV文字化けの対処方法で詳しく説明しています。