CSV→JSON 完全ガイド
JSON(更新: 2026年6月1日)
CSVとJSONの構造の違い
CSV(カンマ区切り値)とJSON(JavaScript Object Notation)は最も一般的なデータ形式ですが、構造に本質的な違いがあります:
| 特徴 | CSV | JSON |
|---|---|---|
| 構造 | フラットな表形式 | ネストされたツリー |
| データ型 | すべて文字列 | 文字列、数値、真偽値、null |
| ネスト | 非対応 | ネイティブ対応 |
| コメント | 非対応 | 非対応(JSON5は対応) |
| 用途 | 表データ、Excelエクスポート | APIレスポンス、設定ファイル |
変換ルールの詳細
CSV → JSON
CSVの各行はJSONオブジェクトに変換されます。最初の行がキー名(ヘッダー)、以降の行が値となります:
name,age,city
太郎,28,東京
花子,32,大阪
変換結果:
[
{ "name": "太郎", "age": 28, "city": "東京" },
{ "name": "花子", "age": 32, "city": "大阪" }
]
JSON → CSV
JSON配列内の各オブジェクトはCSVの1行に展開され、オブジェクトのキー名がヘッダー行を構成します。
JSON↔CSVツールで変換する
ステップ1:データを準備する
CSVファイルが正しい形式であることを確認:先頭行がヘッダー、各行のフィールド数が一致、カンマを含むフィールドはダブルクォートで囲む。
ステップ2:変換方向を選択
JSON↔CSVツールを開き、「CSV → JSON」または「JSON → CSV」モードを選択。
ステップ3:データを貼り付けまたはアップロード
データを入力エリアに貼り付けるか、.csv / .json ファイルを直接アップロード。
ステップ4:オプションを設定
- 区切り文字:デフォルトはカンマ、タブ(TSV)やセミコロンも対応
- ヘッダーを含むか:先頭行をフィールド名として扱うかを制御
- ネスト展開:JSON内のネストされたオブジェクトの処理方法
- 数値自動検出:
"28"を自動的に28に変換
ステップ5:結果を取得
変換ボタンをクリック。結果は出力エリアに即座に表示され、ワンクリックでコピーまたはダウンロード可能。
ヘッダーの処理
ヘッダーはCSVの核心です。変換時の注意点:
- ヘッダー内のスペースや特殊文字はJSONのキー名として保持される
- 小文字+アンダースコア命名(例:
user_name)を推奨 - CSVにヘッダーがない場合、ツールが
col_1,col_2などのデフォルト列名を自動生成
ネストされたオブジェクトの処理
CSV自体はネストに対応していませんが、ドット記法で階層を表すCSVもあります:
user.name,user.email,order.id
太郎,taro@example.com,1001
JSON↔CSVツールで「ネスト自動展開」オプションを有効にすると:
{
"user": { "name": "太郎", "email": "taro@example.com" },
"order": { "id": 1001 }
}
大きなファイルの処理テクニック
- CSVファイルが10MBを超える場合、バッチ変換を推奨
- ストリーミング処理でメモリオーバーフローを回避
- ツールは最大50MBまでのオンライン変換に対応
- 非常に大きなファイルはPython(pandas)でローカル前処理を推奨
よくあるエラーと解決方法
| エラー | 原因 | 解決方法 |
|---|---|---|
| フィールド数の不一致 | 行にカンマの過不足 | クォートの囲みが完全か確認 |
| 文字化け | ファイルがUTF-8ではない | テキストエディタでエンコーディング変換 |
| JSONパース失敗 | 不正な形式 | JSONフォーマッターで修復 |
| ネスト展開失敗 | キー名の階層が不規則 | ドット区切りの整合性を確認 |
実用テクニック
- 変換後に JSONフォーマッター で出力を整形
- JSONPath で変換結果を素早く検証
- ExcelエクスポートのCSVにはBOMヘッダーが含まれることが多い — 変換前に削除
- 日付フィールドはISO 8601形式に統一を推奨
まとめ
CSVとJSONの相互変換は日常的な開発で高頻度の操作です。構造の違いと変換ルールを理解し、JSON↔CSVツールを活用すれば、効率的にデータ形式の変換が可能です。複雑なネストや大きなファイルのケースでは、本ガイドのテクニックを参考に一つずつ解決してください。
#CSV#JSON#数据转换#表格#开发