「Excelのデータをアプリ開発に使いたい」「APIのデータを表計算ソフトで分析したい」そんなとき、CSVとJSONの変換が必要になります。

この記事では、CSVとJSONの変換方法を、ヘッダー行や区切り文字の扱い、日本語データの注意点も含めて具体例つきで解説します。

CSVとJSONとは

CSV(Comma-Separated Values)

CSVは、表形式のデータをテキストで表現する形式です。ExcelやGoogleスプレッドシートのエクスポート、データベースのダンプなどで広く使われています。

name,age
太郎,30
花子,25

JSON(JavaScript Object Notation)

JSONは、Web APIや設定ファイルで使われるデータ形式です。階層構造を表現でき、プログラムで扱いやすいのが特徴です。

[
  { "name": "太郎", "age": "30" },
  { "name": "花子", "age": "25" }
]

どちらを使うべき?:表計算ソフトで扱うならCSV、プログラムやAPIで扱うならJSONが向いています。用途に応じて相互変換が便利です。

変換の基本ポイント

CSVとJSONを変換するとき、次の3つのポイントに注意しましょう。

ポイント 内容
ヘッダー行 CSVの先頭行が「列名」の場合は、それをJSONのキー名として使います
区切り文字 CSVの区切りはカンマが一般的ですが、タブやセミコロンの場合もあります
引用符 データ内にカンマや改行が含まれる場合、CSVでは引用符(“)で囲みます

ヘッダー行ありの場合

CSVの先頭行を列名として扱うと、次のようなJSONオブジェクトの配列になります。

name,age
太郎,30
[
  { "name": "太郎", "age": "30" }
]

ヘッダー行なしの場合

先頭行もデータとして扱います。

太郎,30
[
  { "column1": "太郎", "column2": "30" }
]

CSVをJSONに変換する手順

Tools HubのCSV⇄JSON変換ツールを使えば、ブラウザだけで数秒で変換できます。

1

CSVを貼り付ける

ExcelやスプレッドシートからコピーしたCSVを入力欄に貼り付けます。

2

区切り文字とヘッダーを設定

カンマ・タブ・セミコロンから区切り文字を選び、ヘッダー行の有無を指定します。

3

変換してコピー

変換ボタンを押すと整形されたJSONが表示され、コピーやダウンロードで利用できます。

この記事で紹介したツール

CSV⇄JSON変換ツール

カンマ・タブ・セミコロン区切りに対応。ブラウザ内で完結し、データは外部送信されません。

変換してみる

JSONをCSVに変換する手順

変換方向を「JSON → CSV」に切り替えるだけで、同じ手順で変換できます。

  • JSONはオブジェクトの配列である必要があります
  • すべてのオブジェクトが同じキー(列名)を持っていると、きれいなCSVになります
  • データ内にカンマや改行が含まれる場合は、自動的に引用符で囲まれます

日本語データの注意点

日本語を含むCSVやJSONは、UTF-8で扱えばそのまま変換できます。次の点に注意しましょう。

  • Excelで作成したCSVは**Shift_JIS(CP932)**の場合があります。変換前にUTF-8へ保存し直すと確実です
  • Excelで開くときは、UTF-8のCSVが文字化けする場合があります。「UTF-8(BOM付き)」で保存すると文字化けを防げます

注意:データ内にカンマが含まれる列は、CSVでは引用符(")で囲むのがルールです。変換ツールはこれを自動処理しますが、手作業の際は注意しましょう。

まとめ

  • CSVは表計算向き、JSONはプログラム向きのデータ形式
  • 変換時は「ヘッダー行」と「区切り文字」の設定が重要
  • データ内のカンマや改行は引用符でエスケープされる
  • Tools Hubの変換ツールならブラウザだけで完結し、データが外部送信されない

データ移行や開発の場面で、CSVとJSONの変換が必要になったら、この記事の手順を参考にしてください。

よくある質問

CSVの区切り文字を変更できますか?

はい。カンマ・タブ・セミコロンの3種類から選択できます。タブ区切りのデータ(TSV)も変換できます。

ヘッダー行がないCSVはどうなりますか?

「ヘッダー行あり」のチェックを外すと、自動的に「column1」「column2」のようなキー名が割り当てられます。

大量のデータでも変換できますか?

ブラウザのメモリに依存しますが、数万行程度のデータであれば問題なく変換できます。

変換したデータはサーバーに送信されますか?

されません。すべての処理はブラウザ内で完結し、データが外部に送信されることはありません。