CSV を JSON に変換

この無料ツールは、CSV ファイルを1行につき1つのオブジェクトの JSON に変換します。ヘッダー行をキーにし、数値と true、false には型を付け、郵便番号のように先頭に0がある値はテキストのまま残します。変換はブラウザーが行うため、CSV はアップロードされません。JSON には日付型がないので日付はテキストのままで、出力は JSON Lines ではなく1つの JSON ドキュメントです。

うまく変換できないファイルがありましたか? [email protected] までメールでお知らせください。小さなサンプルファイルを添えていただけると、修正しやすくなります。

要点

CSV を JSON に変換する理由

Web アプリ、API、テスト用データ、静的サイトジェネレーター、NoSQL データベースは JSON を必要としますが、元のデータは CSV で保存されたスプレッドシートであることがよくあります。このツールは、ヘッダー行をキーにして、各行を JSON オブジェクトに変換します。区切り文字と文字コードを自動で検出し、ヨーロッパ版 Excel が書き出すセミコロン区切り・小数点カンマのファイルにも対応します。最初の数行がプレビューに表示されるので、列を確認できます。数値は JSON の数値に、true と false は真偽値に、空のセルは null になり、郵便番号のように先頭に0がある値はテキストのまま残ります。型を自分で決めたい場合は、すべてをテキストにすることもできます。address.city のようにドットを含む列名は入れ子のオブジェクトにでき、できるだけ小さくしたい場合は、オブジェクトの代わりに行のリストを選べます。出力は読みやすくインデントされた UTF-8 の JSON です。

CSV を JSON に変換する方法

  1. CSV ファイルをボックスにドロップするか、クリックして選びます。
  2. プレビューで列を確認し、値の扱いと JSON の構造を選びます。
  3. 「JSON に変換」をクリックし、.json ファイルをダウンロードします。

CSV を JSON にする前に知っておきたいこと

1行目はヘッダー

1行目がキーの名前になります。空の名前は column_1、column_2 のようになり、重複した名前には _2 が付くので、値が上書きされることはありません。ヘッダーの上にタイトル行がある場合は、先にスプレッドシートで削除してください。

数値に見えて数値ではないもの

0150 のような郵便番号、007 のようなコード、16 桁以上の数値は、JSON の数値にすると0や桁が失われるため、テキストのままにします。1,250.00 や 1.250,00 のように桁区切りが入った数値もテキストのままです。

日付はテキストのまま

JSON には日付型がないため、日付は「2024-05-01」のように CSV に書かれているとおりに書き出されます。プログラムが特定の形式を必要とする場合は、CSV を保存する前にスプレッドシートで日付を変換してください。

入れ子のキー

入れ子のオプションを使うと、address.city 列と address.zip 列が1つの address オブジェクトにまとまります。address という名前の列も別にある場合は、値が失われないよう、ドットを含む列は平らなまま残します。

ファイル形式について

CSV

CSV(comma-separated values)は、1行が1つの行で、セルをカンマ、セミコロン、タブで区切ったプレーンテキストの表です。 Excel、Google スプレッドシート、Numbers、あらゆるデータベース、ほとんどのプログラミング言語が読み書きできるため、 表をあるプログラムから別のプログラムへ移す定番の方法になっています。

  • 区切り文字に標準はありません。Excel は言語設定によってカンマまたはセミコロンを使います。
  • すべての値はテキストです。0800 を数値と見なすか郵便番号と見なすかは、読み込むプログラム次第です。
  • シート、数式、色、列幅はなく、値だけが入っています。
  • 文字コードはファイルに保存されません。安全なのは UTF-8 で、Excel が認識するには BOM が必要です。

JSON

JSON(JavaScript Object Notation)は、多くのウェブ API、アプリ、設定ファイルがデータに使うテキスト形式です。 値を入れ子にできるため、1件のレコードの中に別のレコードやリストを入れられます。これは平らな表ではできないことです。

  • オブジェクトは名前付きの値を、リストは順番に並んだ値を保持し、どちらも何階層でも入れ子にできます。
  • 値はテキスト、数値、true/false、null のいずれかなので、"0150" と書いた郵便番号はテキストのままです。
  • JSON Lines(.jsonl、.ndjson)は1行に1つの JSON オブジェクトを置く形式で、ログやデータのエクスポートでよく使われます。
  • テキストは常に Unicode で、通常は UTF-8 です。

よくある質問

CSV ファイルはアップロードされますか?

いいえ。ファイルの読み込みも JSON の書き出しも、お使いの端末上でブラウザーが行います。サーバーには何も送信されません。

どの区切り文字に対応していますか?

カンマ、セミコロン、タブ、パイプを自動で検出し、Excel がときどき付ける「sep=」の行も認識します。プレビューですべての値が1つの列に入っている場合は、区切り文字を自分で選んでください。

JSON Lines で出力できますか?

直接はできません。このツールが書き出すのは1つの JSON ドキュメントです。JSON Lines を読めるプログラムの多くは JSON のリストも読めますし、ほとんどの API やツールが想定しているのも JSON のリストです。

非常に大きなファイルはどうなりますか?

200 MB までのファイルに対応しています。すべての値にキーが付くため、JSON は通常 CSV の2〜3倍の大きさになります。行のリストの構造を選ぶと、ファイルを小さくできます。