CSV から JSON への変換

左側に CSV(または TSV)を貼り付けると、右側にオブジェクトの JSON 配列が表示されます。ヘッダー自動検出、型変換も自動。アップロードなし。

  1. CSV を左のテキストエリアに貼り付けてください。
  2. 「JSON に変換」をクリックします。最初の行はヘッダーとして扱われます。
  3. JSON 配列をコピーするか、data.json としてダウンロードします。
  4. TSV(タブ区切り)など他の区切り文字も PapaParse が自動検出します。
何ができるのか?

CSV(RFC 4180 風)を、各オブジェクトのキーがヘッダー列と一致する JSON 配列にパースします。引用符付きフィールド、埋め込みカンマ、エスケープされた二重引用符、CRLF / LF の改行はすべて処理されます。数値、ブール値、null 様の値("true"、"false"、空)は自動で型付けされます。区切り文字は自動検出 — TSV、セミコロン区切り、パイプ区切りのデータでも動作します。

CSV 入力:

name,age,role
Ada,36,engineer
Grace,40,scientist

JSON 出力:

[
  {"name": "Ada", "age": 36, "role": "engineer"},
  {"name": "Grace", "age": 40, "role": "scientist"}
]

よくある CSV のつまずきと対処法

CSV は単純そうに見えて、思った以上にエッジケースがあります。意外な出力を生むパターンを示します。

  • 引用符なしの埋め込みカンマ。 `Smith, John` のような引用符なしフィールドは 2 列に分割されます。二重引用符で囲んでください: `"Smith, John"`。
  • フィールド内の二重引用符。 引用符で囲まれたフィールド内では、リテラルの `"` は二重化でエスケープします: `"He said ""hi"""` は `He said "hi"` にデコードされます。バックスラッシュエスケープ(`\"`)は非標準でサポートされません。
  • 列数の不一致。 ヘッダーより列が少ない行は欠損キーが null になり、列が多い行はパース警告として報告されます。変換は完了しますが、出力を確認してください。
  • 先頭ゼロが消える数値 ID。 `007` は文字列 "007" ではなく数値 7 としてパースされます。先頭ゼロが意味を持つ場合(郵便番号、電話番号)、フィールドを引用符で囲んで前処理してください — 引用符付きの値は下流のコードで動的型付けをオフにすれば文字列のままパースできます。
  • ファイル先頭の BOM。 Excel が保存した CSV には UTF-8 バイトオーダーマーク(`\uFEFF`)が先頭に含まれることがよくあります。パーサーは取り除きますが、16 進エディタから生バイトを貼り付けると、最初のヘッダーに不審な文字として見えることがあります。
  • 改行の混在。 CRLF(Windows)、LF(Unix)、CR(古い Mac)のすべてを認識します。出力が 1 つの巨大な行に見える場合、ファイルに改行がまったくない可能性があります — `\n` を入れずに連結して生成された CSV でよくあります。
よくある質問

タブ区切り(TSV)はサポートされますか?

はい。PapaParse は入力の最初の 1 KB から区切り文字を自動検出します。タブ、セミコロン、パイプ、カンマは設定なしで動作します。検出が誤った場合(実データではまれ)はフィールドを明確に区切るか、前処理してください。

CSV にヘッダー行がない場合は?

現在の設定は最初の行をヘッダーと仮定します。ヘッダーがない場合は `a,b,c` のような合成ヘッダー行を貼り付け前に追加してください。配列の配列形式が必要なら、コマンドラインで PapaParse を `header: false` で実行する方が良いです。

日付はどう扱われますか?

文字列のままです。パーサーは数値とブール値のみ自動で型付けします — 日付フォーマットの曖昧さ(`01/02/03` は米国では 1 月 2 日、英国では 2 月 1 日)が大きすぎるため、意図的に自動パースしません。出所の慣習を知っている下流のコードで処理してください。

非常に大きな CSV ファイルも変換できますか?

約 50 MB まではブラウザが快適に動きます。ボトルネックはテキストエリアでパーサーではありません — それより大きなファイルはコマンドラインで PapaParse を実行してください。ライブラリは同じです。

CSV はどこかにアップロードされますか?

いいえ。すべてはブラウザ内で実行されます — このページの JavaScript がデータをパースし、サーバーには送信されません。ブラウザの開発者ツールで確認できます: 変換ボタンを押してもネットワークリクエストはゼロです。

別の形(ネスト、グループ化)の JSON はどう作りますか?

このツールはフラットなオブジェクトのフラットな配列を生成します — それが CSV の表現です。ネスト構造が必要なら、出力をスクリプトで後処理してください(列でグループ化、フィールド名にプレフィックス、など)。CSV に階層を強引に入れようとすると、たいてい余計に問題が増えます。