JSONとCSVを相互に変換します。APIから取得したデータを表計算ソフトで見たいとき、その逆の場面で使えます。
変換の対応関係
JSONの配列(オブジェクトの集まり)が、CSVの行に対応します。オブジェクトのキーがCSVのヘッダーになります。
[{"name":"田中","age":30},{"name":"佐藤","age":25}]
↓
name,age
田中,30
佐藤,25つまずきやすい点
- 入れ子のJSON:CSVは表形式のため、階層構造をそのまま表現できません。フラット化が必要です
- キーの不一致:オブジェクトごとにキーが違うと、欠けた列は空になります
- カンマや改行を含む値:CSVではダブルクォートで囲む必要があります
- 文字コード:Excelで開く場合、UTF-8のBOM付きにしないと文字化けすることがあります
Excelで開くときの注意
CSVをExcelで開くと、「001」が「1」になる、日付形式に自動変換される、長い数値が指数表記になる、といった変換が起こります。データを壊したくない場合は、Excelの「データ」タブからインポートし、列の型をテキストに指定して読み込んでください。
取り込み前のチェック
取り込みエラーの多くは、この4点のいずれかが原因です。エラーが出たら、まず先頭の数行を目視で確認してください。
- 1行目がヘッダーになっているか
- 列数がすべての行でそろっているか
- 値の中にカンマや改行が含まれていないか(囲み文字の確認)
- 文字コードが取り込み先の想定と一致しているか
よくある質問
Q 入れ子のJSONも変換できますか?
CSVは表形式のため、階層構造はそのまま表現できません。事前にフラットな構造にしてください。
Q Excelで文字化けします
UTF-8のBOM付きで保存するか、Excelのインポート機能で文字コードを指定して読み込んでください。
Q 区切り文字は変更できますか?
タブ区切り(TSV)などにも対応しています。日本語環境ではタブ区切りのほうが安全な場合があります。
Q データは送信されますか?
されません。変換はブラウザ内で行っています。
