CSV から JSON への変換ツール
CSV を JSON に、JSON を CSV に変換します。表のプレビュー付き。
このツールについて
CSV を貼り付けると JSON オブジェクトの配列に、JSON を貼り付けると CSV に変換します。区切り文字(カンマ、セミコロン、タブ、パイプ)は自動的に判別され、引用符で囲まれたフィールドや引用符内の改行も正しく扱われます。ネストした JSON オブジェクトは、ドット区切りの列名に平坦化されます。
使い方
- スプレッドシートやデータベースからエクスポートした CSV、またはオブジェクトの JSON 配列を貼り付けます。
- 変換方向と区切り文字(カンマ、セミコロン、タブ、パイプ)は自動的に判別されます。必要に応じて変更してください。
- CSV の場合は、1 行目をヘッダーとして扱うか、数値や true/false を型付きの値にするかを選びます。
- 表のプレビューを確認してから、出力をコピーします。
よくある質問
- Excel の CSV がセミコロン区切りです。使えますか?
- はい。ヨーロッパの多くのロケールの Excel はセミコロン区切りで CSV を保存しますが、区切り文字はデータから判別されます。手動で選ぶこともできます。
- 値の中のカンマや改行はどう扱われますか?
- ダブルクォートで囲まれた値には区切り文字や改行を含めることができ、その中で 2 つ続いた引用符("")は 1 つの引用符を表します。これは RFC 4180 で定められています。
- JSON を CSV に変換すると、ネストしたオブジェクトはどうなりますか?
- ドット区切りの列名に平坦化されるため、{"address": {"city": "Oslo"}} は address.city という列になります。配列は JSON テキストとして 1 つのセルに書き込まれます。
- 先頭のゼロや電話番号は保持されますか?
- はい。プレーンな数値だけが JSON の数値になるため、00123、+48 600 100 200、非常に長い ID のような値はテキストのままです。すべての値をテキストのままにするには「数値と真偽値」をオフにしてください。
- Windows の改行コードの CSV ファイルにも対応していますか?
- はい。CRLF、LF、単独の CR の改行コードはすべて受け付けるため、Windows の Excel で保存した CSV も、Linux ツールが出力した CSV と同じようにパースされます。クォートされた値の中の改行は値の一部として残ります。JSON から生成した CSV は LF の改行コードを使います。
- クォートされたフィールドが閉じられていないと表示されるのはなぜですか?
- 値がダブルクォートで始まっていますが、入力の終わりまでに閉じるクォートがないため、それ以降がすべて 1 つのフィールドになってしまいます。" で始まる値を見つけて閉じるクォートを追加するか、クォートで囲むつもりがなかった値なら開きクォートを削除してください。
- TSV やコピーしたスプレッドシートのセルを JSON に変換できますか?
- はい。Excel や Google スプレッドシートでセル範囲をコピーすると、クリップボードにタブ区切りのテキストが入り、タブ区切りは自動的に検出されます。入力欄に貼り付ければ、ファイルを保存しなくても JSON が得られます。データベースクライアントから TSV でエクスポートしたものも同様に扱えます。
CSV を JSON に変換する方法
CSV から JSON への変換では、各行がヘッダー行のキーを持つオブジェクトになります。ヘッダーが id,name,active なら、1,Ada Lovelace,true の行は {"id": 1, "name": "Ada Lovelace", "active": true} になります。「数値と真偽値」をオンにすると、単純な数値、true、false、null は型付きの JSON 値になります。オフにすると、すべての値が文字列のままになります。表のプレビューには最初の 50 行が表示されるので、コピーする前に列を確認できます。
CSV ファイルにヘッダー行がない場合は、「1 行目はヘッダー」をオフにすると、キーは column1、column2 のようになります。空のヘッダーセルにも同じ名前が使われます。ヘッダーよりフィールドが少ない行は不足する列が空文字列になり、ヘッダーを超える余分なフィールドは削除されます。表のプレビューで列がずれている場合、たいていはクォートしていない値に区切り文字が含まれています。
CSV の区切り文字と Excel
CSV の区切り文字は 1 つに決まっていません。Excel は地域設定のリスト区切り文字を使うため、カンマが小数点として使われるドイツ、フランス、ポーランドなどヨーロッパの多くの地域では、CSV ファイルにセミコロンが使われます。データベースのエクスポートや Unix ツールはタブ区切り(TSV)を出力することが多く、パイプを使うシステムもあります。変換ツールはカンマ、セミコロン、タブ、パイプを試し、最初の数行で列数が最も揃うものを選びます。
JSON から CSV への変換では、デフォルトでカンマを使います。ヨーロッパ版の Excel でダブルクリックして開くファイルならセミコロンを、結果をスプレッドシートのセルに直接貼り付けるなら「タブ」を選んでください。区切り文字、クォート、改行を含む値は自動的にダブルクォートで囲まれます。ダウンロードしたファイルを Excel で開いてアクセント付きの文字が化ける場合は、「データ」>「テキストまたは CSV から」でインポートし、UTF-8 を選んでください。Excel が古いエンコーディングを想定していることがあるためです。
JSON 配列を CSV に変換する方法
JSON から CSV への変換には、API レスポンスの項目のようなオブジェクトの配列が必要です。各オブジェクトが 1 行になり、列はすべてのキーの和集合で、最初に現れた順に並びます。キーがないオブジェクトは空のセルになり、null も空のセルになります。単一のオブジェクトからは 1 行の CSV が、[1, 2, 3] のような単純な値の配列からは value という 1 列が作られます。
多くの API は {"data": [...], "page": 2} のようにリストをエンベロープで包んでいます。これをそのまま変換すると、リスト全体が JSON テキストとして 1 つのセルに詰め込まれた 1 行になります。代わりに内側の配列だけを貼り付けてください。構造がわかりにくい場合は、先に JSON フォーマッターでレスポンスを開きます。CSV をデータベースにインポートする場合は列名を確認してください。address.city のようなドット付きの名前は変更が必要な場合があります。
うまく動かない、または結果がおかしいですか? このツールの問題を報告