CSV→JSON変換

CSVファイルをJSON配列(オブジェクトの配列)に変換します。区切り文字・見出し行の有無を指定でき、変換結果はコピー・ダウンロードできます。ファイルの内容はブラウザ内で処理されサーバーには送信されません。

区切り文字
先頭行を見出しとする
整形して表示(インデント付き)


            
            コピーしました!
            
          

CSVを入力すると、ここにJSONが表示されます。

CSVの行とJSONオブジェクトの対応

CSVの1行 name,age,city
変換後のJSONオブジェクト {"name": "...", "age": "...", "city": "..."}

先頭行を見出しとして使う場合、2行目以降の各行が、見出しの列名をキーにした1つのオブジェクトに変換されます。

CSV→JSON変換とは

CSV→JSON変換とは、カンマ区切りのCSVデータを、プログラムから扱いやすいJSON配列(オブジェクトの配列)に変換する処理です。ダブルクォートで囲まれたセル内のカンマ・改行・エスケープされた引用符("")にも対応したRFC 4180準拠のパーサーで読み取るため、Excel等で出力した複雑なCSVもくずさずに変換できます。

変換の際は、1行目を見出し行として扱い、2行目以降の各行を「見出し名: 値」という形のオブジェクトに変換します。処理はすべてブラウザ内のJavaScriptで完結しており、入力したCSVの内容がサーバーへ送信されることはありません。

CSV→JSON変換の使い方

  1. CSVを入力する テキストエリアにCSVを貼り付けるか直接入力します。手元にデータが無い場合は「サンプル」ボタンで例を読み込めます。
  2. 区切り文字を選ぶ 「区切り文字」でカンマ・タブのどちらを使っているデータかを選びます。TSVファイルの場合はタブを選択します。
  3. 見出し行の扱いを設定する 「先頭行を見出しとする」を有効にすると、1行目の値がJSONオブジェクトのキー名として使われます。
  4. 表示形式を選ぶ 「整形して表示(インデント付き)」を切り替えて、読みやすいインデント付きのJSONか、詰めたJSONかを選べます。
  5. 結果をコピーする 変換されたJSONは自動的に画面へ表示されます。「コピー」ボタンでクリップボードにコピーし、そのまま利用できます。

使いこなすためのヒント

  • 「先頭行を見出しとする」を有効にすると、1行目の値がJSONオブジェクトのキー名として使われます。無効にすると col1・col2… という連番キーになります。
  • 見出しに空欄や重複した列名がある場合は、その列だけ自動的に col{列番号} というキーに置き換わり、値の欠落を防ぎます。
  • 姉妹ツールの「JSON→CSV変換」と組み合わせることで、CSVとJSONを何度でも相互に変換できます。
  • ダブルクォートで囲まれたセル内のカンマ・改行・エスケープされた引用符("")にも対応したRFC 4180準拠のパーサーで変換するため、Excel等で出力した複雑なCSVも正しく変換できます。

CSV→JSON変換の活用シーン

APIのテスト用データ作成

スプレッドシートから書き出したCSVを、APIの動作確認に使うJSONペイロードへすばやく変換できます。

NoSQLデータベースへの投入データ準備

MongoDBのようなドキュメント指向データベースはJSON形式のデータを扱うため、表計算ソフトで作った一覧をそのまま投入用データに変換できます。

フロントエンドのモックデータ作成

画面のダミー表示やテストに使うJSON配列を、Excelで作った一覧表から手早く用意できます。

スクリプトを書かない一時的なデータ変換

変換用のコードをその場で書くほどでもない、一度きりのちょっとしたCSV→JSON変換にも手軽に使えます。

用語集

CSV
Comma-Separated Valuesの略で、値をカンマで区切って表形式データを表す形式です。表計算ソフトでの読み書きに広く使われています。
JSON
JavaScript Object Notationの略で、キーと値の組を中心にデータを表す軽量な形式です。多くのプログラミング言語やAPIで標準的に扱われています。
TSV
Tab-Separated Valuesの略で、値をタブ文字で区切って表形式データを表す形式です。値にカンマを含む場合でもCSVより区切りが曖昧になりにくいという特徴があります。
RFC 4180
CSVファイルの一般的な書式を定めた仕様です。ダブルクォートで囲んだセル内のカンマ・改行・引用符の扱い方などが規定されています。
ヘッダー行(見出し行)
CSVの1行目に置かれる、各列の名前を表す行です。JSONへ変換する際、この行の値がオブジェクトのキー名として使われます。
エスケープ
CSV内でダブルクォート自体を値として含めたい場合に、引用符を二重に重ねて("")表す処理です。パーサーはこれを1個のダブルクォートとして復元します。

よくある質問

既定では、1行目を見出しとして扱い、2行目以降の各行を「見出し名: 値」という形のオブジェクトに変換し、それらを配列でまとめたJSON(オブジェクトの配列)を出力します。APIのレスポンスやNoSQLデータベースへの投入データとしてよく使われる形式です。

はい。「区切り文字」で「タブ」を選択すれば、TSVファイルもそのままJSONに変換できます。

はい、CSV上のすべての値はテキストとして扱われるため、数値や真偽値に見える値もJSON上では文字列("123"や"true"など)として出力されます。数値として扱いたい場合は、変換後にJSON側で型変換してください。

いいえ。変換処理はすべてブラウザ内のJavaScriptで行われ、入力したCSVの内容がサーバーに送信されることはありません。個人情報を含むデータでも安心してご利用いただけます。
ツールくん

余談ですが ― なぜAPIはCSVではなくJSONを好むのか

CSVは表形式データを平易に表現できる一方、ネスト構造(配列や入れ子オブジェクト)を表現できないという制約があります。REST APIのレスポンスの多くがJSON形式を採用しているのは、1つのレコードの中に配列やオブジェクトを自由に埋め込めるため、CSVでは表現しきれない複雑なデータ構造もそのまま送受信できるからです。

一方でCSVには「Excelやスプレッドシートですぐに開ける」「1行が1レコードなので人間が目で確認しやすい」という捨てがたい利点があります。実務では「集計・確認はCSV、システム間連携はJSON」という使い分けが定着しており、本ツールのような相互変換の需要が絶えないのはこのためです。

JSON(JavaScript Object Notation)という名前にもかかわらず、現在ではJavaScript以外のほぼすべての言語で標準的にサポートされています。2001年にDouglas Crockfordによって仕様が公開されて以来、意図的に「特定の言語に依存しない最小限のデータ表現」として設計されてきたことが、この普及の大きな理由です。