「CSVデータをJSONに変換したいけど、ツールを使うだけでは物足りない…」「自分で変換ツールを作ってみたい!」そんな方に向けて、この記事ではHTMLとJavaScriptだけで作れる「CSV⇔JSON変換ツール」の作り方をわかりやすく解説します。
専門的なフレームワークやサーバーの知識は不要。ブラウザで動くシンプルなツールを自作しながら、CSV形式やJSON構造への理解も深められます。学習目的でも、ポートフォリオ作成でも、「実践的なWebツール制作」に一歩踏み出せる内容です。
プログラミング初心者の方も、コピペから始められるように、ステップごとの解説付きで紹介していますので、ぜひ最後までご覧ください。
CSV⇔JSON変換ツールってどんなもの?
CSV⇔JSON変換ツールとは、その名の通り「CSV(カンマ区切りの表形式データ)」と「JSON(JavaScript Object Notation)」という2つの形式のデータを相互に変換できるツールです。
CSVとは?
CSV(Comma-Separated Values)は、表計算ソフト(例:Excel、Googleスプレッドシート)などでも扱えるシンプルなテキストデータ形式です。
各行が1つのレコードで、カンマで項目を区切るのが特徴です。
CSV例:
名前,年齢,職業
田中,30,エンジニア
佐藤,25,デザイナー
JSONとは?
一方、JSONはJavaScriptで扱いやすいデータ形式で、主にWeb開発でよく使われます。オブジェクトや配列の形でデータを表現することができます。
JSON例:
[
{ "名前": "田中", "年齢": 30, "職業": "エンジニア" },
{ "名前": "佐藤", "年齢": 25, "職業": "デザイナー" }
]
変換ツールの目的
このツールを使うことで、スプレッドシートで作ったデータをそのままWeb開発に活かしたり、API用のデータに整形したりといったことが簡単になります。
「CSV⇔JSON変換ツール」は、日常業務から開発現場まで幅広く役立つ、とても便利なツールなのです。
こんな人におすすめ!ツール作成で得られるメリット
「CSV⇔JSON変換ツール」は、さまざまな立場の方にとって便利なツールです。特に次のような方におすすめです。
Web開発初心者
JavaScriptやフロントエンドの学習を始めたばかりの方にとって、JSON形式に慣れることは必須です。
このツールを使えば、表形式のデータを簡単にJSONに変換できるので、コードに組み込む練習にぴったりです。
データの扱いに不慣れな方
「CSVとJSONって何が違うの?」という方でも安心。GUIベースのツールなので、専門的な操作やコマンドは不要です。コピペだけで変換できるので、非エンジニアの方にもおすすめです。
現場でデータを扱う人
マーケティング担当やデータ分析の担当者など、CSVで出力されたデータを他システムと連携する必要がある方にとって、JSON変換は欠かせません。
このツールがあれば、余計なエクセル操作や手作業を減らすことができます。
実際に作ってみよう|シンプルなCSV→JSON変換ツール
ここでは、初心者でも実装できるCSV→JSON変換ツールの作り方を、ステップごとに丁寧に解説します。HTMLとJavaScriptだけで、ブラウザ上で動作するシンプルなツールを作成していきましょう。
ステップ0:HTMLファイルを作成する
まずは、メモ帳などで以下の内容をコピーして、ファイル名を csv_to_json.html として保存します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>CSV to JSON</title> </head> <body> <h1>CSV→JSON変換ツール</h1> <textarea id="csvInput" rows="10" cols="50" placeholder="CSVデータを入力してください"></textarea><br> <button onclick="convertCSVtoJSON()">変換する</button> <pre id="jsonOutput"></pre> <script> function convertCSVtoJSON() { const csv = document.getElementById("csvInput").value; const lines = csv.split("\n"); const headers = lines[0].split(","); const result = []; for (let i = 1; i < lines.length; i++) { const obj = {}; const currentLine = lines[i].split(","); if (currentLine.length !== headers.length) continue; headers.forEach((header, index) => { obj[header.trim()] = currentLine[index].trim(); }); result.push(obj); } document.getElementById("jsonOutput").textContent = JSON.stringify(result, null, 2); } </script> </body> </html> |
ステップ1:ブラウザで動かす
- 保存した
csv_to_json.htmlをダブルクリックすると、ブラウザで開きます。 - 上部の入力欄に以下のようなCSVを入力してみましょう。
CSVサンプル:
名前,年齢,職業
田中,30,エンジニア
佐藤,28,デザイナー - 「変換する」ボタンを押すと、下にJSON形式のデータが表示されます。
補足:このツールのポイント(ソース解説つき)
このツールは、JavaScriptの基本的な文法だけで動作するシンプルな設計です。以下のポイントを押さえると理解が深まります。
split("\n") で行ごとに分割
CSVは改行で区切られているため、まず csv.split("\n") で行単位の配列に変換しています。
|
1 |
const lines = csv.split("\n"); |
1行目はヘッダーとして抽出
CSVの1行目はカラム名(例:名前, 年齢)なので、lines[0] を使って項目名のリストを作成します。
|
1 |
const headers = lines[0].split(","); |
2行目以降をループでオブジェクト化
残りの行はデータ行として、1行ずつループしてJavaScriptオブジェクト形式に変換しています。
|
1 2 3 4 5 6 7 8 |
for (let i = 1; i < lines.length; i++) { const obj = {}; const currentLine = lines[i].split(","); headers.forEach((header, index) => { obj[header.trim()] = currentLine[index].trim(); }); result.push(obj); } |
JSON.stringify(..., null, 2) で見やすい整形
最終的に、オブジェクト配列を JSON 文字列に変換し、インデント(2スペース)で整形表示しています。
|
1 |
JSON.stringify(result, null, 2); |
このように、CSV→JSON変換の基本処理がシンプルなコードで完結しているため、初心者でも理解しやすく、応用もしやすい構造になっています。
さらに実用的に!コピー機能やJSON→CSV変換を追加
この章では、基本のCSV→JSON変換に加えて、使いやすさを高めるための追加機能について解説します。
コピー機能で結果の再利用がスムーズに
変換結果のJSONデータをワンクリックでコピーできるようにすることで、以下のような活用が簡単になります:
- 他のアプリやエディターに貼り付けて再利用
- JSON検証ツールやAPIテストツールへの入力
- コードの一部として流用
コピー機能の実装には navigator.clipboard.writeText() を使用します:
|
1 2 3 4 5 6 |
function copyToClipboard() { const text = document.getElementById("jsonOutput").textContent; navigator.clipboard.writeText(text).then(() => { alert("コピーしました!"); }); } |
JSON→CSV変換にも対応すると、より多用途に!
多くのユーザーは、JSONからCSVに戻したいシーンもあります。たとえば:
- JSON形式で受け取ったAPIレスポンスを表形式で閲覧したい
- スプレッドシートで編集できる形にしたい
この変換は、以下の手順で実現できます:
- JSON文字列を
JSON.parse()でオブジェクトに変換 - キーを抽出してCSVの1行目(ヘッダー)を生成
- 各オブジェクトの値を1行ずつ追加してCSVを完成
|
1 2 3 4 5 6 7 8 9 |
function jsonToCSV(json) { const arr = JSON.parse(json); const headers = Object.keys(arr[0]); const csvRows = [ headers.join(","), ...arr.map(obj => headers.map(h => obj[h]).join(",")) ]; return csvRows.join("\n"); } |
すべての機能を盛り込んだソースコード(HTML+JavaScript)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>CSV⇔JSON変換ツール</title> <style> textarea { width: 100%; height: 180px; margin-bottom: 10px; font-family: monospace; } button { margin-right: 10px; padding: 5px 10px; } pre { background: #f4f4f4; padding: 10px; overflow-x: auto; } </style> </head> <body> <h2>CSV入力</h2> <textarea id="csvInput" placeholder="名前,年齢 田中,30 鈴木,25"></textarea> <button onclick="convertCSVtoJSON()">CSV→JSON変換</button> <h2>JSON出力</h2> <pre id="jsonOutput"></pre> <button onclick="copyJSON()">JSONをコピー</button> <hr> <h2>JSON入力</h2> <textarea id="jsonInput" placeholder='[{"名前":"田中","年齢":"30"},{"名前":"鈴木","年齢":"25"}]'></textarea> <button onclick="convertJSONtoCSV()">JSON→CSV変換</button> <h2>CSV出力</h2> <pre id="csvOutput"></pre> <button onclick="copyCSV()">CSVをコピー</button> <script> function convertCSVtoJSON() { const csv = document.getElementById("csvInput").value.trim(); const [headerLine, ...lines] = csv.split("\n"); const headers = headerLine.split(","); const result = lines.map(line => { const values = line.split(","); let obj = {}; headers.forEach((key, i) => obj[key] = values[i]); return obj; }); document.getElementById("jsonOutput").textContent = JSON.stringify(result, null, 2); } function copyJSON() { const text = document.getElementById("jsonOutput").textContent; navigator.clipboard.writeText(text).then(() => alert("JSONをコピーしました!")); } function convertJSONtoCSV() { try { const jsonStr = document.getElementById("jsonInput").value.trim(); const data = JSON.parse(jsonStr); if (!Array.isArray(data) || data.length === 0) throw new Error("配列形式のJSONを入力してください"); const headers = Object.keys(data[0]); const csv = [ headers.join(","), ...data.map(obj => headers.map(h => obj[h] ?? "").join(",")) ].join("\n"); document.getElementById("csvOutput").textContent = csv; } catch (e) { document.getElementById("csvOutput").textContent = "エラー: " + e.message; } } function copyCSV() { const text = document.getElementById("csvOutput").textContent; navigator.clipboard.writeText(text).then(() => alert("CSVをコピーしました!")); } </script> </body> </html> |
主な特徴
- CSV→JSON変換
- JSON→CSV変換(配列+単純オブジェクトのみ対応)
- それぞれの出力内容をワンクリックでコピー可能
- エラー処理あり(JSON側)
- 日本語キー・値対応済み
おすすめの学習リソース|HTMLやJavaScriptをもっと学びたい方へ
今回のような「CSV⇔JSON変換ツール」を自作できるようになると、他の便利ツールや簡単なWebアプリも自分で作れるようになります。ここでは、HTMLやJavaScriptの基礎をわかりやすく学べる初心者向けの学習リソースをご紹介します。
書籍でじっくり学びたい方におすすめ
『いちばんやさしいデータベースの本』 (技評SE選書)
この書籍では、CSVやJSONのフォーマット自体を直接扱ってはいませんが、データの整理・管理といった根本的な考え方を丁寧に学ぶことができます。データベースの基本的な構造(テーブルやリレーションなど)を理解することで、「なぜCSVやJSONのような形式が必要なのか」「どのような場面で使われるのか」が自然と見えてきます。
CSVやJSONは、実際の開発現場ではデータベースとの連携によく使われます。この本を通して、そうした実践的なデータ活用の背景を知ることができるでしょう。
こんな方におすすめ:
- CSVやJSONの仕組みを“もっと根本から”理解したい方
- データが保存・検索・管理されるしくみに興味がある方
- データベースとの連携イメージをつかみたい方
学習できること:
- データベースの基本(テーブル構造・リレーション・SQLなど)
- データの整理手法(正規化など)
- 現場で使われる「データの設計」の考え方
『確かな力が身につくJavaScript超入門』 (SBクリエイティブ)
JavaScriptの入門書でありながら、オブジェクトや配列、JSONとの関係を実践的に理解できる一冊です。特にJSONは、JavaScriptのオブジェクトとほぼ同じ構造を持っているため、この本でオブジェクトを学ぶことがJSON理解への近道になります。
また、Web APIからJSONを取得してページに表示するフローなども扱われているため、「CSVからJSONに変換して、JavaScriptでどう活用するか」のイメージがつかみやすくなっています。
こんな方におすすめ:
- JSONを使ったプログラムを実際に書いてみたい方
- JavaScriptの基本と一緒に、Web APIやデータ処理も学びたい方
- コードを通して、実践的な理解を深めたい初学者
学習できること:
- JavaScriptの基礎文法・オブジェクトと配列の使い方
- JSONとJavaScriptオブジェクトの対応関係
- Web APIと非同期処理(Ajax)を使った実践的データ処理
おすすめのオンライン講座
Udemy|世界最大級のオンライン学習プラットフォーム
世界中で利用されるオンライン学習サイト。
HTML、CSS、JavaScriptの入門から応用まで、高評価の講座が数百種類揃っています。
初心者でも動画を見ながら手を動かせるので、挫折しにくいのが魅力です。
まとめ|CSV⇔JSON変換ツールを自作して、スキルと理解を深めよう!
今回は、HTMLとJavaScriptだけで動作する「CSV⇔JSON変換ツール」の作り方をご紹介しました。
変換ロジックの実装や、コピーボタンやJSON→CSV対応といった機能の追加まで、ステップごとに実践的に解説しました。
また、ツール制作を通して:
- データ形式の違い(CSVとJSON)を実感できる
- 配列や文字列操作の理解が深まる
といったスキルアップ効果も大きいのがポイントです。
さらに学びを深めたい方は、おすすめの書籍や講座もあわせてご覧ください。
自作ツールを通して、着実にプログラミング力を育てていきましょう!
動くものを作るのが、いちばんの学びになるよ!少しずつ機能を増やして、レベルアップしよう!
関連記事
【CSV⇔JSON変換ツールはこちらから今すぐ使えます】▼
【CSV⇔JSON変換ツールの活用アイデアはこちらの記事で紹介しています】▼

