約3分で読めます
CSVとJSONの違いと相互変換|カンマ・引用符・文字コードの注意点
CSVとJSON、それぞれの得意分野
CSVとJSONは、どちらもデータを保存・受け渡しするための定番フォーマットですが、得意なことが異なります。
- CSV — 表形式(行と列)のデータ向き。Excelやスプレッドシートで扱いやすい
- JSON — 階層構造(入れ子)のデータ向き。プログラムやAPIで扱いやすい
構造の違い
同じデータをCSVとJSONで表すと、違いが一目で分かります。
# CSV
id,name,role
1,Taro,admin
2,Hanako,user
[
{ "id": 1, "name": "Taro", "role": "admin" },
{ "id": 2, "name": "Hanako", "role": "user" }
]
CSVは1行目を「ヘッダー(列名)」とし、以降が各レコードです。シンプルで軽量ですが、入れ子のデータは苦手です。JSONは入れ子や配列を自然に表現できますが、その分冗長になります。
相互変換のやり方
CSVの各行をJSONのオブジェクトに対応させるのが基本です。スプレッドシートのデータをAPIに渡したい、逆にAPIのレスポンスを表計算で扱いたい——そんなときにCSV⇔JSON変換ツールを使えば、貼り付けるだけで双方向に変換できます。変換後のJSONを整えたいときはJSON整形ツールも合わせてどうぞ。
ハマりやすい3つの注意点
1. カンマを含む値
CSVはカンマで列を区切るため、値の中にカンマがあると列がずれます。住所や金額(1,000)が典型例です。これを防ぐため、カンマを含む値はダブルクォートで囲むルールがあります。
id,note
1,"Tokyo, Japan"
2. 引用符のエスケープ
値の中にダブルクォート自体を含めたい場合は、"" と2つ重ねてエスケープします。
1,"He said ""Hello"""
これを単純な置換で処理すると壊れやすいため、変換はツールに任せるのが安全です。
3. 文字コードと改行
| 落とし穴 | 対策 |
|---|---|
| Excelで開くと文字化け | UTF-8(BOM付き)で保存する |
| 改行コードの違い(CRLF/LF) | 変換時に統一する |
| 全角カンマと半角カンマ | 区切りは半角カンマで統一 |
特にWindowsのExcelはUTF-8 BOMなしのCSVを文字化けさせることがあるため、日本語を含むデータは文字コードに注意しましょう。
まとめ
- CSVは表形式、JSONは階層構造に向く
- 変換はCSVの行 ↔ JSONのオブジェクトが基本
- カンマを含む値はダブルクォートで囲む、引用符は
""でエスケープ - 文字化け対策はUTF-8。Excel連携ではBOMに注意
- 変換はCSV⇔JSON変換ツールが確実