CSV から JSON への変換
左側に CSV(または TSV)を貼り付けると、右側にオブジェクトの JSON 配列が表示されます。ヘッダー自動検出、型変換も自動。アップロードなし。
- CSV を左のテキストエリアに貼り付けてください。
- 「JSON に変換」をクリックします。最初の行はヘッダーとして扱われます。
- JSON 配列をコピーするか、data.json としてダウンロードします。
- 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 に階層を強引に入れようとすると、たいてい余計に問題が増えます。