CSV to JSON 変換ツール
CSVをブラウザ内で即座にJSONに変換。RFC 4180・型推論・ヘッダー行・大整数安全対応。100%プライベート、アップロード不要。
オプション · , · auto · LF · header · no BOM · flatten
JSONとは何ですか?なぜCSVから変換するのですか?
JSON(JavaScript Object Notation)はAPIレスポンス・設定ファイル・構造化データ交換のための汎用フォーマットです — すべての現代プログラミング言語・すべてのデータベース・すべてのウェブフレームワークが一級のJSONサポートを備えています。一方CSV(Comma-Separated Values)は、最も古く、最も広くサポートされている表形式フォーマットです — すべてのスプレッドシートアプリ・すべてのデータベースエクスポート・すべての分析ツールが生成できます。両者の変換はデータエンジニアリングで最もよくある作業の一つです:スプレッドシート・データベースダンプ・サードパーティのエクスポートからCSVを受け取り、APIへの投入・フロントエンドの初期化・NoSQLストアへのロードのためにJSONが必要になります。このツールはその変換経路のために作られており、典型的なオンライン変換ツールが取りこぼしがちな4つのシナリオを処理します。
典型的なオンラインCSV-to-JSONコンバーターと比較して、このツールには4つの重要な差別化ポイントがあります。
**1. RFC 4180ステートマシンパーサー。** CSVは単純に見えますが、クォートのルールは繊細です:ダブルクォートで囲まれたフィールドはカンマ・埋め込み改行・エスケープされたダブルクォート(ダブルクォートを2つ重ねて、""のように)を含むことができます。素朴にカンマで分割するパーサーは、カンマを含む住所・複数行のテキストフィールド・クォートを含むクォート付き値といった現実のデータで壊れます。このツールはRFC 4180(CSVのIETF仕様)に従う適切なステートマシンパーサーを実装しており、双方向でクォート付きフィールド・埋め込み区切り文字・埋め込み改行・エスケープされたクォートを正しく処理します。出力はPythonのcsvモジュール・PostgreSQLのCOPY・AWS S3 SELECT・あらゆる準拠パーサーで往復可能です。
**2. 大整数安全性を備えた型推論。** 型推論を有効にすると、数値文字列は数値に、true/falseはブール値に、空セルはnullになります。ただし推論パイプラインには重要なガードが2つあります:先頭ゼロ付き文字列(007、0123)は文字列として保持されます — 先頭ゼロは識別子であることを示し、数値に変換するとそれらが無言で削除されてしまうためです。そして2^53 - 1(9007199254740991)を超える整数も、IEEE 754の精度損失を回避するために文字列として保持されます。TwitterのSnowflake ID・Discord ID・MongoDBのLongフィールド・KubernetesのresourceVersionは無言で丸められることなく、すべて正確なまま保たれます。ISO日付文字列は意図的に文字列として保持されます — JSONにはネイティブな日付型がありません。
**3. ヘッダー自動命名または最初の行の使用。** ヘッダーオン(デフォルト)では、最初の行は列名として扱われ、後続の各行はそれらの名前をキーとするJSONオブジェクトになります。ヘッダーオフでは、パーサーは列をcol1、col2、col3と自動命名します — ヘッダー行を持たない生データダンプに役立ちます。区切り文字チップ行は最も一般的な4つのセパレーターをカバーします:カンマ(RFC 4180デフォルト)・セミコロン(Excel-EUロケール)・Tab(UnixツールやデータウェアハウスからのTSV)・パイプ(カンマ多用フィールド)。チップを選んで解析するだけ — 典型的な現実のCSVに手動設定は不要です。
**4. 100%ブラウザベースのプライバシー。** あなたのCSVデータ — ユーザーのPII・社内データベースエクスポート・顧客レコード・本番エクスポートを含むことが多い — はブラウザを離れることはありません。データはどのサーバーにも送信されず、ログも、入力を取得する分析もありません。ブラウザの「ネットワーク」タブで確認できます。これはオンラインツールで機密データを扱う唯一の安全な方法です。「方向を入れ替え」で逆方向を確認するか、CSVが目的のときは姉妹ツールJSON to CSVコンバーターをご利用ください。消費前にJSON出力を検証する必要がある場合はJSON整形ツールをお試しください。
JSONの強みは精密な型・ネイティブなネスト・どこでも同一に解析される厳密な仕様です — マシンがデータを消費するときに適切なフォーマットです。CSVの強みは普遍性と人間が読めることです — 人間がスプレッドシートを開くときに適切なフォーマットです。適切なツールは消費側に依存します:人間がスプレッドシートを読む → CSV、マシンがAPIを消費する → JSON。このコンバーターは双方向で橋渡しを担います。
// Input CSV (comma + LF, header on, infer types on)
id,name,active,score
1,Alice,true,98.5
2,Bob,false,87
3,Carol,true,
// Output JSON
[
{ "id": 1, "name": "Alice", "active": true, "score": 98.5 },
{ "id": 2, "name": "Bob", "active": false, "score": 87 },
{ "id": 3, "name": "Carol", "active": true, "score": null }
]
// Same input with Header off (no first-row keys)
1,Alice,true,98.5
2,Bob,false,87
// Becomes
[
{ "col1": 1, "col2": "Alice", "col3": true, "col4": 98.5 },
{ "col1": 2, "col2": "Bob", "col3": false, "col4": 87 }
] 主な機能
RFC 4180ステートマシンパーサー
IETFのCSV仕様に従う厳密なステートマシンパーサー:クォート付きフィールド・埋め込み区切り文字・埋め込みCR/LF・エスケープされたダブルクォート(ダブルクォートを2つ重ねて)を正しく処理します。出力はPythonのcsv・PostgreSQLのCOPY・AWS S3 SELECTを通じてクリーンに往復します。
大整数安全性を備えた型推論
型推論を有効にすると、数値文字列は数値に、true/falseはブール値に、空セルはnullに変換されます。2^53 - 1を超える整数はIEEE 754の精度損失を回避するため文字列として保持されます。先頭ゼロ付き文字列(007、0123)は識別子の意味を保つため文字列として保持されます。
ヘッダーオン/オフと自動命名
ヘッダーオン(デフォルト)は最初の行をJSONキーとして使用します。ヘッダーオフは列を順にcol1、col2、col3と自動命名します — ヘッダー行を持たない生データダンプやマシン生成のCSVに役立ちます。自動命名は決定論的でパイプラインフレンドリーです。
カンマ・セミコロン・Tab・パイプ区切り文字
最も一般的な4つのセパレーター用のワンクリック区切り文字チップ:`,`(RFC 4180デフォルト)・`;`(Excel-EUロケール)・`\t`(Unixツール・BigQuery・SnowflakeからのTSV)・`|`(カンマ多用の自由記述テキストフィールド)。パーサーは即座にモードを切り替えます — ファイルを先に変換する必要はありません。
大整数の検出
2^53を超える整数は解析時に検出され、JSON内では文字列として保持されます — TwitterのSnowflake ID・Discord ID・MongoDBのLongフィールド・KubernetesのresourceVersionは、JavaScriptのIEEE 754数値型に無言で丸められることなく、正確なまま保たれます。
「方向を入れ替え」による双方向対応
「方向を入れ替え」ボタン1つで、その場で変換を反転:入力がJSONに、出力がCSVになり、現在のテキストは保持されます。データを双方向で往復させて無損失変換を確認してから、パイプラインに送り出してください。
サンプル
ヘッダー付きスプレッドシートエクスポート
id,name,email,role 1,Alice,alice@example.com,admin 2,Bob,bob@example.com,editor 3,Carol,carol@example.com,viewer 4,Dan,dan@example.com,viewer
スプレッドシートからの標準的なCSVです。ヘッダーと型推論を有効にすると、整数は整数のまま、ブール値とnullが検出されたクリーンな型付きJSONが得られます。
Tab区切りログエクスポート(TSV)
ts event user duration 2026-05-09T10:00:00Z signup alice 142 2026-05-09T10:01:00Z login alice 87 2026-05-09T10:02:00Z checkout alice 312 2026-05-09T10:03:00Z logout alice 44
区切り文字として `\t`(Tab)を選択してください。デフォルトで有効なヘッダーが、最初の行を自動的にキーとして使用します。
Excel-EU CSV(セミコロン区切り、CRLF)
id;name;price 1;Alice;1234,56 2;Bob;9876,54 3;Carol;42,00
DE/FR/IT/ESロケールのExcelはカンマが小数点区切りであるため、`;`をセパレーターとして出力します。区切り文字チップから`;`を選択すれば、あとはパーサーが処理します。
埋め込みカンマとエスケープされたクォート
name,role,note "Smith, Jr.",admin,"He said ""hi""" "Doe, Jane",editor,"Two lines"
標準的なRFC 4180のクォート規則:クォート付きフィールドは区切り文字とエスケープされたクォート(ダブルクォートを2つ重ねて)を含めます。パーサーはステートマシン方式で、クォート内では決して分割されません。
大整数IDを含むCSV
id,event,user 9007199254740993,signup,alice 9007199254740994,login,bob 9007199254740995,checkout,carol
大整数はJavaScriptの安全範囲(2^53 - 1)を超えます。型推論を有効にすると、パーサーがこれを検出し、精度を保つために値を文字列のまま保持します — 切り捨ては発生しません。
ヘッダーなしCSV
1,Alice,admin 2,Bob,editor 3,Carol,viewer 4,Dan,viewer
ヘッダーをオフにすると、列が`col1`、`col2`、`col3`と自動命名されます。ヘッダー行を持たない生データダンプにこれを使用してください。
使い方
- 1
CSVを貼り付ける
上の入力欄にCSVを入力または貼り付けてください。ツールはカンマ・セミコロン・Tab・パイプ区切りデータを受け付けます。「サンプルを読み込む」をクリックして、スプレッドシートエクスポート・TSVログ・セミコロン付きExcel-EU CSVなどのサンプルを試すこともできます。
- 2
区切り文字(またはTab)を選ぶ
`,`(デフォルト)・`;`(Excel-EUセミコロン)・`\t`(TSV)・`|`(Pipe)をクリックすると、ワンクリックで区切り文字を切り替えられます。「オプション」パネルを開くときめ細かく制御できます:ヘッダーのオン/オフ、型推論のオン/オフ。ヘッダーオフは列をcol1、col2、col3と自動命名します。
- 3
JSONをコピーまたはダウンロード
「コピー」でJSONをクリップボードに取得するか、「ダウンロード」でコード・API・パイプラインにすぐ使える.jsonファイルとして保存してください。往復変換には、「方向を入れ替え」をクリックしてその場でJSONをCSVに戻せます。
よくある変換ミス
ソースで埋め込みカンマがクォートされていない
素朴なjoin(',')でCSVを手作りすると、カンマを含むフィールド(Smith, Jr.や1,234.56)が列境界を壊します — パーサーは1列であるべき場所に余分な列を見ます。修正はRFC 4180に従って該当フィールドをダブルクォートで囲むことです。このツールはクォート付きフィールドを正しく処理しますが、ソースCSVが適切なクォートを使用している必要があります。
name,role Smith, Jr.,admin // Parser reads 3 columns: "Smith", " Jr.", "admin"
name,role "Smith, Jr.",admin // Parser reads 2 columns: "Smith, Jr.", "admin"
Excel-EUのセミコロンがカンマとして解析される
ヨーロッパのExcelロケール(ドイツ・フランス・スペイン・イタリアなど)はカンマが小数点区切りに予約されているため、セミコロン区切りCSVを出力します。区切り文字を`,`(デフォルト)のままにすると、すべての行が埋め込みセミコロン付きの単一列に折り畳まれます。`;`区切り文字チップを選んでください — パーサーがセミコロンモードに切り替わり、正しい列を生成します。
// Wrong delimiter (default comma) on Excel-EU file
id;name;price
1;Alice;1234,56
// Each row becomes one column: { col1: "1;Alice;1234,56" } // Correct: pick `;` Delimiter chip
id;name;price
1;Alice;1234,56
// Output: { id: 1, name: "Alice", price: "1234,56" } JSON.parse後に大整数IDが精度を失う
TwitterのSnowflake ID・Discord ID、その他の64ビット整数はJavaScriptの安全範囲(2^53 - 1)を超え、JSON.parse()で数値として読み取られた時点で精度を失います。型推論を有効にすると、このツールは安全境界を超える値を検出し、代わりに文字列として保持して正確な桁を保ちます。コードで数値型に戻すには、BigInt("9007199254740993")を使用してください。
// Without big-int detection
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost) // With Infer types on, big integers stay as strings
{"id": "9007199254740993"}
// Use BigInt(value) in code to preserve precision ヘッダー行にスペースが含まれる
CSVヘッダーが`id, name, email`(カンマの後にスペースあり)の場合、JSONキーは"id"、" name"、" email"となり、先頭スペースが含まれます。パーサーはRFC 4180に従ってヘッダーをそのまま正確に保持します。修正は、貼り付け前にソースCSVをクリーンアップするか、下流でキーをリネームすることです(jq 'with_entries(.key |= ltrimstr(" "))' またはJavaScriptのObject.fromEntries(Object.entries(o).map(([k,v]) => [k.trim(), v])))。
id, name, email 1, Alice, alice@example.com // Output keys: "id", " name", " email" (with leading spaces)
id,name,email 1,Alice,alice@example.com // Output keys: "id", "name", "email" (clean)
行の長さの不一致
CSV内の行の列数が異なる場合(一部に末尾カンマがあり、他にはない)、パーサーは欠落セルを空文字列で埋め(型推論を有効にしている場合はnull)、ヘッダー長を超える余分なセルを破棄します。行が正規化されたことを知らせるスキーマ注記の警告が表示されます。通常はこれで問題ありませんが、下流の消費側が厳密な行形状を期待する場合は出力を確認してください。
name,role,note Alice,admin Bob,editor,first day // Row 1 is short by one cell
// Output (note empty/null cell in row 1)
[
{ "name": "Alice", "role": "admin", "note": null },
{ "name": "Bob", "role": "editor", "note": "first day" }
] 日付文字列が予期せず強制変換される
ISO 8601日付文字列(2026-05-09T10:00:00Z)は意図的にJSON出力で文字列として保持されます — JSONにはネイティブな日付型がないため、強制変換するとシリアライゼーションを生き残れないJavaScript Dateオブジェクトか、タイムゾーン情報が失われる数値エポックのいずれかが生成されます。これは設計上の意図です。日付は使用時点でnew Date(value)または好みの日付ライブラリで解析してください。日付を保持するためだけに型推論をオフに切り替えないでください — それは数値も文字列のままにしてしまいます。
// Expecting a Date object in the output ts,event 2026-05-09T10:00:00Z,signup // Output ts is the string "2026-05-09T10:00:00Z", NOT a Date
// Correct: parse at the point of use in your code const rows = JSON.parse(output); const when = new Date(rows[0].ts); // when is now a Date object
よくある使用場面
- スプレッドシートエクスポートをAPIインポートへ
- Excel・Google Sheets・NumbersからエクスポートされたCSVを貼り付けると、REST APIへのPOST・GraphQLミューテーション・一括インポートエンドポイントにすぐ使えるオブジェクトのJSON配列を取得できます。最も一般的なユースケース — アナリストはスプレッドシートデータを生成し、エンジニアはバックエンドに投入するために型付きJSONが必要です。
- Excelエクスポートをツーリングへ
- Excelの CSV エクスポート(`;`チップを使ったExcel-EUセミコロン区切りファイルを含む)をJSONに変換し、JavaScriptツーリング・jqスクリプト・JSONを読み取るあらゆるシステムで処理します。パーサーはBOM除去とCRLF改行を正しく処理するため、Excelエクスポートが最初の行で壊れることはありません。
- TSVログを分析へ
- BigQueryエクスポート・Snowflakeアンロード・Vectorパイプライン・Unixツール(cut・awk)からのTab区切りログは多くの場合.tsvとして届きます。Tab区切り文字チップを選ぶと、アドホック分析・ダッシュボード取り込み・パイプラインステージ変換にすぐ使える型付きJSON配列が得られます。
- データベースのCSVダンプをETLへ
- PostgreSQLのCOPY TO CSV出力・MySQLのSELECT INTO OUTFILE、または任意のデータベースCSVダンプをJSONに変換し、NoSQLストアへのロード・JavaScript ETLパイプラインへの投入・改行区切りJSONとしてのBigQueryへの出荷に使用します。大整数検出はJavaScriptの安全範囲を超える数値IDを保持します。
- Postman/Newman CSVテスト結果の消費
- Postmanのテスト実行はリクエストごとの合否のCSVレポートをエクスポートします。プログラム的な消費のためにJSONに変換 — ステータスダッシュボード・アラートパイプライン・テスト結果アグリゲーターに投入します。形状の異なる行(失敗テストには余分なerror列がある)は空/null埋めで処理されます。
- 小さなCSVをすばやくJSON設定へ
- 通貨コード・国名・製品SKUなどの定数の小さなCSVがあり、設定ファイルやJavaScript定数用のJSON配列が必要ですか?貼り付け、コピー、貼り付け。型推論を有効にすると、数値とブール値が正しく型付けされます。ヘッダーを有効にすると、.jsonファイルにそのまま投入できる名前付きフィールドオブジェクトの配列が得られます。
技術的詳細
- RFC 4180ステートマシンパーサーの内部
- パーサーはRFC 4180に従う適切な有限ステートマシン実装です。状態にはUnquotedField・QuotedField・AfterQuote・RowEnd・EndOfInputが含まれます。パーサーは区切り文字を含むクォート付きフィールド・クォート付きフィールド内に埋め込まれたCR/LF・エスケープされたダブルクォート(ダブルクォートを2つ重ねた""のように)・末尾改行を正しく処理します。これによりPythonのcsvモジュール・PostgreSQLのCOPY・AWS S3 SELECT・あらゆる準拠パーサーを通じて無損失に往復する出力が生成されます。ステートマシンは区切り文字を認識するため、`,`から`;`や`\t`に切り替えてもクォートのセマンティクスは変わりません — 変わるのはフィールドセパレーターだけです。
- 型推論アルゴリズム
- 型推論を有効にすると、各セルは順序付き検出パイプラインを通過します。第1に、空セルはJSONのnullになります。第2に、リテラル文字列のtrueとfalseはJSONのブール値になります。第3に、先頭ゼロ付き文字列(^0[0-9]+$)は識別子の意味を保つため文字列として保持されます — 数値に変換すると先頭ゼロが無言で削除されてしまいます。第4に、整数リテラルは安全整数境界(-2^53+1から2^53-1)に対してテストされ、この範囲外の値はIEEE 754の精度損失を回避するために文字列として保持されます。第5に、ISO 8601日付文字列が正規表現で検出され、意図的に文字列として保持されます — JSONにはネイティブな日付型がありません。これら5つのガードを通過したものはNumber()(数値)で変換されるか、文字列のまま(その他すべて)保持されます。
- BOM除去とエンコーディング処理
- すべての入力はUTF-8として扱われます。任意のUTF-8 BOM(0xEF 0xBB 0xBF)は、最初の行の最初のセルに存在する場合、無言で除去されます — これによりBOMバイトが最初の列名の先頭に余分な文字として含まれるのを防ぎます(Windows上のExcelは一般にBOMを出力するため、素朴なパーサーが壊れます)。他のエンコーディング(Windows-1252・ISO-8859-1)は自動検出されません。テキストがこのツールに到達する時点で、ブラウザのFile APIがバイトをUTF-8としてデコード済みです。UTF-8以外の入力がある場合は、貼り付け前にiconvまたはエディタのエンコーディングエクスポートオプションで先に変換してください。
ベストプラクティス
- カンマ以外のデータでは区切り文字を明示的に選ぶ
- 自動検出に頼らないでください。CSVがセミコロン(Excel-EU)・Tab(BigQuery・Snowflake・UnixツールからのTSV)・パイプ(カンマ多用フィールド)を使用している場合は、貼り付ける前に対応する区切り文字チップをクリックしてください。パーサーは区切り文字を認識し、チップを切り替えると入力が即座に再解析されます。これは、パーサーが間違ったセパレーターを使用したためにすべての行が1セルに折り畳まれる、最も一般的なCSV-to-JSONの失敗モードを回避します。
- 型付きJSONには型推論を有効にしておく
- 型推論を有効(デフォルト)にすると、型付きJSONが得られます:数値は数値として、ブール値はブール値として、空セルはnullになります。これは大半の消費側(API・フロントエンド・JavaScriptコード)が望むものです。下流で型に厳密な消費側・正確なソースバイトを比較する検証パイプラインのためにすべてのセルを文字列として保持する必要がある場合だけ、型推論をオフにしてください。検出パイプラインには先頭ゼロ付き文字列・大整数・ISO日付用のガードがあるため、推論を有効にしていても識別子と日付は安全に保たれます。
- 上流のCSVではIDを文字列としてクォートする
- CSVが管理下のデータベースやパイプラインで生成される場合、大きな数値ID(TwitterのSnowflake・Discord ID・KubernetesのresourceVersion)はクォート付きCSV文字列("9007199254740993")として出力すると、型推論をクリーンに通過します。パーサーはどちらにせよ文字列として保持しますが(大整数検出が2^53 - 1を超える値をキャッチします)、明示的なクォートは最も堅牢な上流契約であり、精度に関する曖昧さを一切回避します。
- ヘッダー行は最初の行であるべき
- ヘッダーオン(デフォルト)は最初の行を列名として自動検出します。CSVにヘッダーの前にコメント・空行・メタデータがある場合は、貼り付ける前に削除してください — パーサーは先頭の非データ行をスキップしません。ヘッダーなしのCSV(生エクスポート・マシン生成のダンプ)では、ヘッダーをオフに切り替えると列が順にcol1、col2、col3と自動命名されます。ヘッダーなしファイルにヘッダーを前置して偽装しようとしないでください。ヘッダーをオフにするか、ソースを修正してください。
- CSV → JSON → CSV 往復には文字列化モードを使う
- 両方向(CSV → JSON → CSV)でデータを往復させる予定の場合、ネストされた配列やオブジェクトを無損失で生き残らせるには、逆方向(JSON → CSV)で文字列化モードが必要です。逆方向の平坦化モードは、CSVパーサーが完璧に再構築できないドット付きキー(customer.address.city)を出力します。完全な逆方向のリファレンスと往復テスト注記については、JSON to CSVコンバーターをご覧ください。
よくある質問
このツールは何をするものですか?
私のデータはどこかにアップロードされますか?
型推論はどのように機能しますか?
なぜ大整数は文字列として保持されるのですか?
私のCSVはセミコロンを使用しています — どう解析しますか?
TSV(Tab区切り)に対応していますか?
CSVにヘッダー行がない場合はどうしますか?
埋め込みカンマを含むクォート付きフィールドを処理できますか?
なぜ私の日付は文字列として保持されるのですか?
行の長さが異なる場合はどうなりますか?
どの程度大きなファイルを貼り付けられますか?
JSON → CSV → JSON を往復できますか?
関連ツール
すべてのツールを見る →Base64エンコーダー&デコーダー
エンコーディングとフォーマット
Base64のデコード・エンコードが無料でオンラインで行えます。リアルタイム変換、UTF-8・絵文字対応。100%ブラウザ上で動作しデータは外部に送信されません。登録不要。
JSON Diff(差分)
エンコーディングとフォーマット
2つのJSONファイルをブラウザで即座に比較・差分確認。サイドバイサイドのハイライト表示、RFC 6902 JSON Patch出力、タイムスタンプやIDなどのノイズフィールドを無視。100%プライベート、アップロード不要。
JSONフォーマッター&バリデーター
エンコーディングとフォーマット
無料オンラインJSON整形ツール。ブラウザ上でJSONのフォーマット、構文検証、圧縮を即座に実行。エラー検出、ワンクリックコピー対応。データは端末外に送信されず、100%プライバシー保護。
JSON Schema バリデーター
エンコーディングとフォーマット
JSON を任意の JSON Schema に対してブラウザで即座に検証。Draft 2020-12 / 2019-09 / Draft-07 をサポートし、エラーメッセージは JSON Pointer パスで正確に位置を示します。100% プライベート、アップロード不要、無料。
JSON to CSV 変換ツール
エンコーディングとフォーマット
JSONをブラウザ内で即座にCSVに変換。RFC 4180・Excel-EU・TSV・Pipeプリセット対応。ネスト平坦化または文字列化。100%プライベート、アップロード不要。
JSON to YAML コンバーター
エンコーディングとフォーマット
JSONを貼り付けるだけで即座にYAMLを取得。ブラウザ内でリアルタイム変換。K8s・Compose対応、2/4スペースインデント、Norway問題対応自動クォート。100%プライベート、データは送信されません。