PeliTouls
CSV JSON

CSV を JSON に

表計算ソフトの書き出しを、ブラウザ内で扱いやすい JSON に変えます。デバイス上だけで処理され、何もアップロードされません。

ファイルを選択

またはここにドロップ

Ctrl+V でクリップボードから貼り付け

  • CSV
  • TSV

最大 1 ファイル、1件あたり 25.0 MB

デバイス上だけで処理されます。何もアップロードされません。

使い方 CSV を JSON に

  1. CSV ファイルを選択するか、ページにドロップします。TSV や区切り文字のないテキストも使えます。
  2. 区切り文字と、先頭行が列名かどうかを確認します。
  3. 出力の形を選びます。オブジェクトの配列か、行の配列です。
  4. 「変換」を押して JSON ファイルをダウンロードします。

この変換について

パーサーは RFC 4180 に従います。これは CSV ファイルが実際に従うとされている仕様で、引用符付きフィールド、引用符内の二重引用符("a""b" は a"b になる)、引用符付きセル内の改行、Windows 書き出しの CRLF 改行を扱います。Excel、Google スプレッドシート、Numbers、LibreOffice から保存したファイルは、バイトオーダーマークの有無にかかわらず正しく解析されます。

区切り文字の自動判別は、ファイル先頭の数行で引用符の外にあるカンマ、セミコロン、タブの候補を数え、すべての行を一貫して区切るものを選びます。Excel が書き出したフランス語の CSV(セミコロン)や本物の TSV も、設定を触らずに判別されます。

数値は JSON の数値になるため、「42」は 42、「3.14」は 3.14 として届きます。空セルは null になります。それ以外は文字列のままで、郵便番号や電話番号の先頭のゼロを保持します。この中間的な扱いにより、スクリプトが識別子を黙って壊すのを防ぎつつ、計算用の数値フィールドも得られます。

出力の形を選ぶ

オブジェクトはほとんどすべての用途が求める形です。「先頭行をヘッダーにする」がオンの場合、各行は {"name": "Ada", "score": 36} のようになります。重複したヘッダー名や空のヘッダー名は、黙って上書きせず接尾辞を付けて一意にします。name, name, name は name, name_2, name_3 になります。

ヘッダーをオフにすると、列名は column_1、column_2 のようになります。「行」は生のグリッドを保ち、すべてのセルがテキストで、構造はファイルと同一です。値の変換をまったく望まないアーカイブや行単位の処理に適しています。

JSON を整形すると 2 スペースでインデントされ、読むのも差分比較も楽になります。ファイルを機械に渡す場合はオフにして、1 行のコンパクトな出力にできます。

制限と正直な補足

1 回の変換につき 1 ファイル、最大 25 MB までで、数百万行も収まります。解析はこのタブ内で行われ、大きなファイルは数秒かかります。

エンコーディングは UTF-8 として読み込みます。アクセント付き文字を含む古い Windows のエンコーディングで保存されたファイルは、文字化けする場合があります。その場合は元のアプリケーションで CSV を UTF-8 として保存し直してください。

出力はデータであり、表計算ソフトではありません。数式、スタイル、複数シートは CSV に存在せず、ここで作り出すこともできません。

よくある質問

セミコロン区切りの CSV に対応していますか?

はい、タブにも対応しています。自動判別が適切な区切り文字を選びますが、明示的に指定することもできます。

数値が文字列になったのはなぜですか?

変換されるのは純粋な数値だけです。01234 のような郵便番号は、意図的に先頭のゼロを保持します。数値に変換すると壊れてしまうからです。

空のセルはどう扱われますか?

オブジェクトモードでは空文字列ではなく null になります。スクリプトが「欠落」と「空」を区別できるようにするためです。

カンマを含む引用符付きフィールドを扱えますか?

はい。引用符付きフィールドは RFC 4180 に従い、エスケープされた引用符やセル内の改行にも対応します。

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

いいえ。解析はすべてブラウザ内で実行されます。

プライバシー・バイ・デザイン

デバイス上だけで処理されます。何もアップロードされません。 変換はブラウザ内で実行されます。変換中にネットワークタブを開くと、何も送信されていないことを確認できます。アカウント不要、透かしなし、1日の回数制限なし。