JSON・CSV・SQLは何が違うのか
JSONは、オブジェクトや配列のような構造をそのまま表現しやすい形式です。 APIレスポンスや設定データでよく使われます。
CSVは、行と列の表形式として見やすい形式です。スプレッドシートやExcelと相性がよく、 非エンジニアとも共有しやすいのが強みです。
SQLは、データベースへ投入したり、取り出したりするための言語です。 そのため「保存・投入・抽出」の文脈で便利です。
- JSON:構造を保ちたいとき
- CSV:一覧で見たいとき、共有したいとき
- SQL:DBへ入れたいとき、クエリとして扱いたいとき
JSONをCSVにしたくなる場面
JSONをCSVにしたくなるのは、構造化データを一覧で見たくなるときです。 APIレスポンスをそのまま読むのは人によってはつらく、列で並べたほうが確認しやすいことがあります。
特に、非エンジニアへ共有したいときや、スプレッドシートで軽く見たいときはCSVのほうが扱いやすいです。
CSVからSQLを作りたくなる場面
CSVからSQLを作りたくなるのは、初期データ投入や検証環境の準備をするときです。 マスターデータをスプレッドシートで持っている場合、そのままINSERT文へ寄せたくなることがあります。
いちいち手で書くと時間がかかるので、CSVからSQLへ変換できるとかなり楽です。
- 検証環境への初期データ投入
- マスターデータ登録
- CSVのヘッダーからSELECT文の雛形を作る
- 共有データをSQLへ寄せる
JSONからSQLを作るときの考え方
JSONからSQLを作るときに大事なのは、データが表形式に近いかどうかです。 たとえば、配列の中にフラットなオブジェクトが並んでいる形なら、 INSERT文へ持っていきやすいです。
逆に、オブジェクトの中にさらに深い配列やオブジェクトが入っている場合は、 そのままでは表形式へ落としづらくなります。その場合は、一度フラット化する発想が必要です。
変換時に気をつけたいポイント
変換時に気をつけたいのは、形式が変わることで表現しづらくなる情報があることです。 たとえばCSVは表形式なので、深いネスト構造との相性はよくありません。
また、数値と文字列の扱いにも注意が必要です。見た目は数字でも、 IDや郵便番号のように文字列として扱いたいケースがあります。 変換後に意図せずゼロが落ちるようなことは避けたいところです。
- 深いネスト構造はCSVへ落としにくい
- 数値と文字列の扱いが変わることがある
- 空値やNULLの扱いを確認したい
- SQL投入前に列名や値を見直したい
データ変換ツールを使うメリット
データ変換ツールを使うと、ちょっとした変換のために毎回スクリプトを書かなくて済みます。 JSONをCSVへ、CSVをINSERT文へ、といった行き来をその場で確認しやすくなります。
特に、実装前の確認や、テスト用データの準備、共有用フォーマットの作成では、 変換結果をすぐ見られるだけでもかなり効率が上がります。
- ちょっとした変換をすぐ確認しやすい
- 毎回スクリプトを書かなくて済みやすい
- 共有用・投入用の形式へ寄せやすい
- 実務の下準備を短くしやすい