>_devtools-hub
データ変換JSONCSV

CSVとJSONを相互変換してデータを扱う手順 — 集計・DB投入まで

CSVとJSONを相互変換してデータを扱う手順を、形式の変換→ネスト構造の平坦化→SQLへの変換→クエリの整形の流れで解説します。文字化けや区切り文字、型の推測といったつまずきやすいポイントも整理します。

エクスポートしたCSVをAPIに流し込みたい、APIから取得したJSONを表計算ソフトで集計したい、受け取ったデータをそのままデータベースに入れたい——データを扱っていると、形式を変換する場面が頻繁に発生します。手作業で並べ替えたり、その場しのぎのスクリプトを書いたりしていると、カンマを含む値や文字コードの違いで壊れることがあります。この記事では、CSVとJSONを相互変換してデータを扱う手順を、形式変換からネストの平坦化、SQLへの変換、クエリの整形まで順番に紹介します。

1. CSVとJSONを相互に変換する

まずは形式の変換です。CSVは1行1レコードの表形式、JSONは階層を持てる構造化データで、それぞれ得意な場面が違います。表計算ソフトで集計するならCSV、APIでやり取りするならJSONが向いています。JSON ↔ CSV Converter に貼り付けると、ヘッダー行をキーとして相互に変換できます。ここで注意したいのが区切り文字と引用符です。値の中にカンマや改行が含まれる場合、その値は引用符で囲む必要があり、囲まれていないCSVは列がずれます。また、日本語を含むCSVをExcelで開くと文字化けすることがありますが、これはUTF-8とShift_JISの違いによるもので、データ自体が壊れているわけではありません。変換後は先頭数行を目視で確認し、列数が揃っているかを見ておくと安全です。

この手順で使うツール

JSON ↔ CSV Converter

JSON 配列と CSV を双方向に変換・テーブルプレビュー付き

2. ネストしたJSONを平坦化する

APIから返ってくるJSONは、オブジェクトの中にオブジェクトや配列が入った階層構造になっていることがほとんどです。これをそのままCSVにはできません。CSVは平らな表なので、階層を1段の列に展開する必要があります。JSON Flattener を使うと、ネストしたJSONを user.address.city のようなドット区切りのキーに展開できます。配列は items.0.name のようにインデックス付きで展開されます。平坦化しておくと、CSV化はもちろん、環境変数や設定ファイルとして扱ったり、どの階層にどんなキーがあるかを一覧で把握したりするのにも役立ちます。逆に、平坦なデータを階層構造に戻したい場合も同じ考え方で対応できます。まずは構造を見渡してから変換すると、必要な項目の取りこぼしを防げます。

この手順で使うツール

JSON Flattener

ネストしたJSONをフラット化・逆変換 — 区切り文字・配列対応

3. データベースに入れるためのSQLを生成する

変換したデータをデータベースに投入する場合、INSERT文を組み立てる必要があります。件数が多いと手書きは現実的ではありません。JSON to SQL を使うと、JSONの配列からテーブル定義(CREATE TABLE)とINSERT文をまとめて生成できます。ここでの注意点は型の扱いです。ツールは値から型を推測しますが、推測が常に正しいとは限りません。たとえば郵便番号や電話番号、先頭にゼロが付くIDは、数値型にすると先頭のゼロが消えてしまうため、文字列型にすべきです。日付も、文字列のまま入れるか日付型にするかで後の扱いが変わります。生成されたCREATE TABLEの型定義には必ず目を通し、実データに合わせて調整してから実行してください。NULLと空文字の違いも、後で集計するときに効いてきます。

この手順で使うツール

JSON to SQL

JSON配列からCREATE TABLE + INSERT文を自動生成 — MySQL/PostgreSQL/SQLite対応

4. SQLを読みやすい形に整形する

生成されたSQLや、他の人から受け取ったSQLは、1行に長くつながっていて読みにくいことがあります。特にJOINやサブクエリが入ると、どこがどの句なのか追うのが大変になります。SQL Formatter に貼り付けると、SELECT・FROM・WHERE・JOIN などのキーワードで改行とインデントが整い、構造が視覚的に分かるようになります。レビュー前やドキュメントに載せる前に整形しておくと、条件の抜けや括弧の対応ミスにも気づきやすくなります。逆に、アプリケーションのコードに埋め込む際は圧縮した1行にしたい場合もあるため、用途に応じて使い分けます。整形して読める状態にしてから実行する——特にUPDATEやDELETEを含むSQLでは、この一手間が事故を防ぎます。

この手順で使うツール

SQL Formatter

SQLをキーワード大文字化・インデント整形・Minify

5. 変換後のデータを検証する

最後に、変換したデータが壊れていないかを確認します。よくある確認項目は、件数が変換前と一致しているか、必須の項目に欠損がないか、文字化けしていないか、そして想定外の型が混ざっていないかです。JSONであれば、フォーマッターで整形して構文エラーがないかを確認し、キーの一覧をざっと眺めるだけでも異常に気づけます。大きなファイルを扱う場合は、まず先頭の数十件だけで変換を試し、期待通りの結果になることを確認してから全件を処理すると、無駄なやり直しを避けられます。データ変換は「一度うまくいったから毎回大丈夫」とは限らず、元データの内容が変わると壊れることがあります。定期的に流す処理であれば、件数チェックだけでも自動化しておくと安心です。

この手順で使うツール

JSON Studio

JSON フォーマッター & バリデーター

まとめ

CSVとJSONの変換は「形式を変換する → ネストを平坦化する → SQLを生成する → 整形して確認する → 検証する」の流れで進めると、事故を減らせます。特に、値に含まれるカンマや改行、先頭ゼロが消える型の推測、文字コードの違いは、実際に壊れやすい定番のポイントです。少量で試してから全件を処理する習慣をつけておくと、データ変換の作業がぐっと安全になります。

このツールで試す

JSON Studio

JSON フォーマッター & バリデーター

JSON開発者向けフォーマッター

使ってみる →

BOOTH

SQL Formatter

SQLをキーワード大文字化・インデント整形・Minify

SQLデータベース開発者向け

使ってみる →

BOOTH

JSON ↔ CSV Converter

JSON 配列と CSV を双方向に変換・テーブルプレビュー付き

JSONCSVデータ変換

使ってみる →

BOOTH

JSON Flattener

ネストしたJSONをフラット化・逆変換 — 区切り文字・配列対応

JSON開発者向けデータ変換

使ってみる →

BOOTH

JSON to SQL

JSON配列からCREATE TABLE + INSERT文を自動生成 — MySQL/PostgreSQL/SQLite対応

開発者向けJSONデータベース

使ってみる →

BOOTH

関連ガイド