CSVからJSONへの変換ツール

CSVデータをJSON配列またはオブジェクト形式に変換

ローカルで実行 · シークレットの貼り付けも安全
CSVがここに表示されます…

CSVからJSONへの変換とは?

CSV(Comma-Separated Values)は、各行がデータレコードを表し、レコード内のフィールドが区切り文字(通常はカンマ)で区切られたプレーンテキストの表形式フォーマットです。CSVはパーソナルコンピューティングの黎明期から標準的なデータ交換フォーマットとして使われており、RFC 4180で正式化されています。スプレッドシート・データベース・データエクスポートツールはいずれもCSVを出力します。シンプルでコンパクトなため、ほぼすべてのプログラミング言語で読み込めます。

JSON(JavaScript Object Notation)は、構造化データをキーと値のペアおよび順序付き配列として表現します。CSVと異なり、JSONはネストされたオブジェクト・型付き値(数値・真偽値・null)・可変長レコードをサポートします。JSONはJavaScriptエンジンにネイティブで認識されるため、ブラウザとサーバー間のデータ交換およびREST APIレスポンスにおける主要フォーマットです。これらの特性から、JSONはWeb API・設定ファイル・MongoDBやCouchDBなどのNoSQLデータベースのデファクトフォーマットとなっています。

CSVからJSONへの変換とは、表の各行をJSONオブジェクトにマッピングし、ヘッダー行をプロパティ名、セルの値をプロパティ値として使う処理です。結果は通常、JSONオブジェクトの配列になります。REST API・フロントエンドのデータテーブルコンポーネント・ドキュメント指向データベースなど、構造化されたJSONを入力として期待するシステムにフラットな表形式データを渡す必要がある場合に、この変換が必要になります。

このツールを使う理由

このコンバーターはブラウザ上でCSVを解析し、JSON出力を即座に生成します。データがサーバーに送信されることはありません。

即時変換
CSVを貼り付けると直ちにJSON出力が得られます。サーバーへの往復やファイルアップロードの待機は不要です。入力しながらリアルタイムに変換されます。
🔒
プライバシー優先の処理
データはブラウザのタブ内に留まります。ネットワーク経由で送信されることはありません。社内データセット・認証情報・マシン外に出すべきでない個人情報も安全に扱えます。
🔀
区切り文字の自動検出
カンマ・タブ・セミコロン・パイプの各区切り文字を自動認識します。ファイルが一般的でない区切り文字を使用している場合は、手動で設定することもできます。
📋
コピーまたはダウンロード
ワンクリックでJSON結果をクリップボードにコピー、または.jsonファイルとしてダウンロードできます。コード・APIクライアント・データベースインポートにそのまま使えます。

CSVからJSONへの変換ユースケース

フロントエンド開発
デザインツールやスプレッドシートからのCSVエクスポートをJSONに変換し、プロトタイピング時にReact・Vue・Angularコンポーネントのモックデータとして使用できます。
バックエンドAPIのシーディング
CSVのデータベースダンプをJSONペイロードに変換し、REST APIやGraphQL APIのシーディングに活用できます。多くのORMやマイグレーションツールは初期データ読み込みにJSONフィクスチャを受け付けます。
DevOps設定
CSVのインベントリリストや環境マトリクスをJSONに変換し、Ansibleのプレイブック・Terraformの変数ファイル・CI/CDパイプライン設定に活用できます。
QAテストデータの準備
スプレッドシートベースのテストマトリクスをJSON配列に変換し、Jest・pytest・Playwrightなどのテストフレームワークでデータ駆動テストに使用できます。
データエンジニアリングパイプライン
SQLクエリやETLエクスポートからのCSV出力をJSONに変換し、MongoDB・Elasticsearch・BigQueryのJSONインジェストモードなどのドキュメントストアへの読み込みに活用できます。
学生プロジェクトと学習
Kaggleや政府オープンデータポータルなどのサンプルCSVデータセットを素早くJSONに変換し、Webアプリ開発の授業・チュートリアル・個人プロジェクトに活用できます。

CSV区切り文字リファレンス

CSVファイルは常にカンマを使うわけではありません。区切り文字はロケール・エクスポートアプリケーション・データの内容によって異なります。最も一般的な4種類の区切り文字と、それぞれの典型的な使用場面を紹介します:

区切り文字標準拡張子備考
Comma (,)RFC 4180 default.csvMost common; Excel default export
Tab (\t)TSV variant.tsvAvoids quoting fields that contain commas
Semicolon (;)European locale CSV.csvUsed where comma is the decimal separator (DE, FR, BR)
Pipe (|)Fixed-width alternative.csvRare in field values, good for messy data

CSVとJSON:構造上の違い

2つのフォーマットのギャップが、変換時にヘッダーマッピング・型推論・欠損値の扱いを明示的に決定する必要がある理由です。

CSV
フラットな行指向フォーマット。すべてのレコードは同数のフィールドを持ちます。すべての値は、読み込む側が型を推論しない限り文字列です。ネストや可変長レコードはサポートされません。ヘッダー行はRFC 4180では任意ですが、意味のあるJSON変換には必須です。
JSON
ツリー構造の自己記述型フォーマット。各オブジェクトは異なるキーを持てます。値には型があります:文字列・数値・真偽値・null・オブジェクト・配列。任意の深さのネストをサポートします。プロパティの順序はJSON仕様(ECMA-404)では保証されていませんが、ほとんどのパーサーは挿入順を維持します。

コード例

主要言語とCLIツールでCSVをJSONにプログラム的に変換する方法:

JavaScript (browser / Node.js)
// Simple CSV string → JSON array
const csv = `name,age,city
Alice,30,Berlin
Bob,25,Tokyo`

const [headerLine, ...rows] = csv.trim().split('\n')
const headers = headerLine.split(',')
const json = rows.map(row => {
  const values = row.split(',')
  return Object.fromEntries(headers.map((h, i) => [h, values[i]]))
})
// → [{ name: "Alice", age: "30", city: "Berlin" }, ...]

// With the built-in fetch + a library (Papa Parse)
import Papa from 'papaparse'
const result = Papa.parse(csvString, { header: true, dynamicTyping: true })
console.log(result.data) // typed numbers and booleans
Python
import csv, json, io

csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""

reader = csv.DictReader(io.StringIO(csv_string))
data = [row for row in reader]
print(json.dumps(data, indent=2))
# → [{"name": "Alice", "age": "30", "city": "Berlin"}, ...]

# With type coercion (age as int)
import pandas as pd
df = pd.read_csv(io.StringIO(csv_string))
print(df.to_json(orient="records", indent=2))
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]
Go
package main

import (
	"encoding/csv"
	"encoding/json"
	"fmt"
	"strings"
)

func main() {
	input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
	r := csv.NewReader(strings.NewReader(input))
	records, _ := r.ReadAll()

	headers := records[0]
	var result []map[string]string
	for _, row := range records[1:] {
		obj := make(map[string]string)
		for i, h := range headers {
			obj[h] = row[i]
		}
		result = append(result, obj)
	}

	out, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(out))
	// → [{"age":"30","city":"Berlin","name":"Alice"}, ...]
}
CLI (jq + Miller)
# Using Miller (mlr) — handles quoting, types, and edge cases
mlr --icsv --ojson cat data.csv
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]

# Using csvjson from csvkit (Python-based)
csvjson data.csv

# Using jq with @csv (reverse: JSON → CSV)
# For CSV → JSON, pipe through Miller or Python
cat data.csv | python3 -c "
import csv, json, sys
reader = csv.DictReader(sys.stdin)
json.dump(list(reader), sys.stdout, indent=2)
"

よくある質問

ヘッダー行がないCSVファイルはどう処理されますか?
ヘッダー行がないCSVの場合、コンバーターは「field1」「field2」などの自動生成キーを使用します。最良の結果を得るには、変換前にヘッダー行を追加するか、変換後にJSON出力のキーをリネームしてください。
カンマや改行を含むクォートフィールドはどう処理されますか?
パーサーはRFC 4180のクォートルールに従います。ダブルクォートで囲まれたフィールドには、カンマ・改行・ダブルクォート(""としてエスケープ)を含めることができます。コンバーターは外側のクォートを取り除き、内容を単一のJSON文字列値として保持します。
数値や真偽値などのデータ型は変換時に保持されますか?
CSVは型のないフォーマットであり、すべてのセル値は文字列です。このコンバーターはデータの損失を避けるためデフォルトで文字列値を出力します。型付きの出力が必要な場合は、アプリケーション側でJSON結果を解析し、フィールドを明示的にキャストしてください。Papa Parse(JavaScript)やpandas(Python)などのライブラリは解析時の動的型変換オプションを提供しています。
カンマの代わりにセミコロンやタブを使ったCSVも変換できますか?
はい。カンマ・タブ・セミコロン・パイプの各区切り文字に対応しています。ドロップダウンから正しい区切り文字を選択するか、自動検出に任せてください。セミコロンは、カンマが小数点の区切りとして使われる欧州ロケールのExcelからのCSVエクスポートでよく使われます。
CSV入力のファイルサイズ制限はありますか?
処理はすべてブラウザ内で実行されるため、実際の制限はデバイスの使用可能メモリによって異なります。10〜20MB程度のファイルであれば、現代のハードウェアで問題なく変換できます。非常に大きなファイル(数百MB)の場合は、Node.jsのPapa ParseやPythonのcsvモジュールなど、データを行ごとに処理するストリーミングパーサーを使用してください。これらはすべてのデータをメモリに読み込まずに処理します。
列数が異なるCSV行はどう処理されますか?
フィールド数がヘッダーより少ないまたは多い「不揃いなCSV」は実際のエクスポートでよく見られます。このコンバーターは欠損フィールドを空文字列で埋め、ヘッダー数を超える余分なフィールドは無視します。データが常に不揃いな場合は、ソースファイルにエスケープされていない区切り文字やクォート漏れがないか確認してください。
JSON配列出力とJSONオブジェクト出力の違いは何ですか?
JSONオブジェクトの配列が標準的な出力形式です。各CSVの行が配列内の1つのオブジェクトになり、ヘッダー名がキーになります。一部のツールでは「列指向」出力も提供しており、各ヘッダーがキーになり、その列のすべての値が配列になります。オブジェクトの配列形式はAPI・データベース・フロントエンドのデータバインディングでより一般的です。