CSV(カンマ区切り値)とJSON(JavaScriptオブジェクト表記法)は、最も広く使われているデータ交換フォーマットの2つです。CSVは最小限のオーバーヘッドでテーブルデータに優れ、JSONは階層的でネストされたデータを簡単に処理します。
なぜCSVをJSONに変換するのか?
CSVファイルはコンパクトで、スプレッドシート、データベース、ログから簡単に生成できます。しかしCSVには重要な制限があります:型の標準がなく(すべて文字列)、ネストされた構造をサポートせず、特殊文字の処理が曖昧です。JSONは这些问题を解決します。
よくあるシナリオには、スプレッドシートデータをWebアプリケーションに移行する、API使用のためにデータベースエクスポートを変換する、D3.jsやChart.jsなどの可視化ライブラリ用にデータを前処理する、構造化された入力を期待する機械学習パイプラインにデータを供給することが含まれます。
基本的な変換
最も単純なCSVからJSONへの変換では、最初の行をヘッダーとして扱います:
名前,年齢,都市Alice,30,東京Bob,25,大阪次のように変換されます:
[ { "名前": "Alice", "年齢": 30, "都市": "東京" }, { "名前": "Bob", "年齢": 25, "都市": "大阪" }]注意:年齢は文字列ではなく数値になっています。CSVには型情報がないため、良いコンバーターは変換中に型を推論する必要があります。CSV to JSON Converterはこれを自動的に処理します。
区切り文字の処理
カンマはデフォルトの区切り文字ですが、CSVファイルではセミコロン、タブ、パイプが頻繁に使用されます — 特にカンマが小数点区切りのヨーロッパのロケールでは。
- カスタム区切り文字 — タブ区切り値(TSV)は
\tを使用 - 引用符で囲まれたフィールド — フィールドが区切り文字を含む場合:
"東京, 日本" - エスケープされた引用符 — 引用符で囲まれたフィールド内の引用符は二重になる
- フィールド内の改行 — 引用符で囲まれたフィールドは複数行にまたがる可能性がある
カンマで単純に分割しようとしないでください — 適切なCSVパースライブラリを使用してください。
型の強制変換
CSVは42(数値)と"42"(文字列)を区別しないため、型推論の戦略が必要です:
function coerce(value) { if (value === '') return null; if (value === 'true') return true; if (value === 'false') return false; if (/^-?\d+(\.\d+)?$/.test(value)) return Number(value); return value;}ネストされたデータの処理
CSVは設計上フラットです。ネストされた構造がある場合、2つの主な戦略があります:ヘッダーのドット表記(address.city)とブラケット表記(tags[0]、tags[1])。良いコンバーターはこれらを適切なJSONオブジェクトと配列に展開します。
よくあるミス
- 文字エンコーディング — CSVファイルはUTF-8、Latin-1、Windows-1252の可能性があります。
- 不一致な行の長さ — 一部の行にはヘッダーより少ない列がある場合があります。
- ヘッダーなしのCSV — すべてのCSVファイルにヘッダーがあるわけではありません。
- 大きなファイル — 2GBのCSVをメモリにロードしないでください。ストリーミングパーサーを使用してください。
- BOM(バイト順序マーク) — 一部のCSVファイルはUTF-8 BOMで始まり、ヘッダー解析を壊す可能性があります。
試してみる
CSVデータをJSONに素早く変換する必要がある場合は、ブラウザで変換が行われるローカルツールを使用してください — データはアップロードされません。