ブログ
日本語

CSV JSON 変換 — CSVをオブジェクトのJSONにオンライン変換

CSVをJSONに変換(区切り文字の自動判定・ヘッダー・型変換・ネスト復元)

ブラウザー内で処理・アップロード不要

CSV JSON 変換ツールとは

スプレッドシートやデータベースから表を取り出すときはCSVが定番ですが、Webのコードで扱うならJSONが便利です。このツールは貼り付けたCSVをJSONに変換します。初期設定ではヘッダー行をキーにしたオブジェクトの配列になり、ヘッダーがない場合は配列の配列になります。

使い方

  1. CSV全体を入力欄に貼り付けるか、CSVファイルを開くでファイルを開きます(UTF-8、UTF-16、EUC-KR、Windows-1252のファイルはそのまま開けます)。
  2. 区切り文字は「自動判定」のままにするか、自分で選びます。1行目がデータならヘッダーのオプションをオフにします。
  3. 数値やtrue/falseをJSONの型にしたいなら、型変換をオンにします。
  4. ネストの復元をオンにすると、address.cityのような列が{"address":{"city":...}}に戻ります。JSON CSV 変換ツールで作ったCSVを戻すときに便利です。
  5. インデントを選んで結果をコピーします。

仕組み

  • 解析はRFC 4180に従います。ダブルクォートの中の区切り文字や改行は値の一部として扱い、ダブルクォート2つは1つとして読みます。完全な空行は読み飛ばします。

  • 型変換の対象は、小文字のtrueとfalse、そして-12、3.5、1e3のような普通の10進表記だけです。007、+1、1e999や9007199254740991を超える整数は文字列のままです。空のセルは空文字列になります。

  • ヘッダー名が重複するとname、name_2、name_3のように名前を変え、列が消えないようにします。

  • ネストの復元では、ドットを含むヘッダーをオブジェクトとして組み立て、[や{で始まる正しいJSONのセルを配列やオブジェクトに展開します。ドット付きのキーが既存の値とぶつかる場合は、そのままのキー名で残します。

  • 入力の先頭にあるUTF-8 BOMは取り除きます。

  • 往復変換の注意:空のセルはnullではなく空文字列になります。また型変換をオンにすると"123"のような数字の文字列は数値の123になるため、JSON → CSV → JSONと往復しても元どおりにならない場合があります。

例

入力:

name,age,address.city
山田太郎,30,Tokyo

型変換とネストの復元をオンにした結果:

[{"name": "山田太郎", "age": 30, "address": {"city": "Tokyo"}}]

よくある質問

区切り文字は自分で選ぶ必要がありますか?

初期設定では、先頭の数行の形からカンマ・セミコロン・タブ・パイプのどれかを自動で判定します。値の中に別の区切り文字が多く含まれていて判定を誤った場合は、手動で選んでください。判定した区切り文字は結果の上に表示されます。

数値が文字列のままになるのはなぜですか?

初期設定ではすべての値を文字列のまま残します。「数値とtrue/falseをJSONの型に変換」をオンにすると変換されます。その場合でも、先頭にゼロが付いた007、+1、2^53を超える整数などは、情報が失われないよう文字列のままにします。

Excelで保存したCSVの日本語は崩れずに読めますか?

ファイルは**CSVファイルを開く**で開いてください。UTF-8またはUTF-16のBOMがあればそれで文字コードを決め、なければUTF-8として読み、失敗したらEUC-KR(CP949、韓国語版Excelの既定)、それにも当てはまらなければWindows-1252(西欧版Excel)として読みます。どれで読んだかは画面に表示されます。日本語版Excelの「CSV(コンマ区切り)」はShift_JISで保存されますが、この自動判定には含まれないため、Excelで「CSV UTF-8(コンマ区切り)」を選んで保存し直すか、文字コード変換ツールでUTF-8にしてから開いてください。他のアプリからコピーした時点で化けている文字は、貼り付けても直せません。

列の数が合わない行はどうなりますか?

その行もそのまま変換し、行番号を「確認が必要な行」に一覧表示します。足りないセルのキーは結果に含まれず、余分なセルは捨てられます。

ほしいツールはありますか?