本文へスキップ

JSON・CSV 相互変換

JSON・CSV 相互変換

CSV/TSV と JSON を相互変換。区切り文字の自動判定、ヘッダー行のマッピング、フィールドのトリム、空行のスキップに対応。データのインポート/エクスポート、スプレッドシート処理、API ペイロードの準備に便利です。

JSON・CSV 相互変換

🚀 かんたんスタート

  • 右側の CSV エディターに CSV/TSV データを貼り付けるか入力すると、左側の JSON が自動で同期されます。
  • 左側の JSON エディターに入力した内容も、右側の CSV に自動で反映されます。
  • 区切り文字は既定で「自動」です。先頭行を解析し、カンマ・タブ・セミコロン・縦線(|)を自動判定します。
  • 「ヘッダー行を使う」をオンにすると、CSV の先頭行を JSON オブジェクトのキーとして扱います。オフの場合は二次元配列として変換されます。
  • 「フィールドをトリム」と「空行をスキップ」を使うと、乱れた CSV データを手早く整えられます。
  • 各エディターは個別にダウンロードできます。JSON 側は .json、CSV 側は現在の区切り文字に応じて .csv または .tsv で保存されます。

📌 よくある利用シーン

  • Excel から JSON へ:Excel のセル範囲(タブ区切り)を CSV 側に貼り付けるだけで、JSON オブジェクト配列に変換できます。
  • API レスポンスを表計算に:JSON のレスポンスを CSV に変換し、Excel や Google スプレッドシートで分析できます。
  • データベース取り込み準備:CSV データを JSON に変換し、API 経由の一括登録に使えます。
  • ログ解析:CSV 形式のログを JSON に変換し、jq などで構造化検索できます。
  • 設定移行:CSV のマッピング表と JSON 設定ファイルを相互に変換できます。
  • データクリーニング:余分な空白除去と空行スキップで、外部出力データを素早く整形できます。

🧭 使い方のヒント

  • Excel から貼り付けたデータは通常タブ区切りです。自動判定でほぼ正しく認識されますが、誤判定時は手動で区切り文字を選んでください。
  • 「ヘッダー行を使う」をオンにすると、先頭行はデータではなく列名として扱われます。ヘッダーがない CSV ではオフにしてください。
  • ヘッダー名が重複している場合、JSON キーの一意性を保つために name、name_2 のように自動で接尾辞が付きます。
  • JSON → CSV はフラットなオブジェクト配列に適しています。ネストしたオブジェクトや配列は JSON 文字列としてセルに格納されます。
  • 区切り文字・改行・二重引用符を含むフィールドは、CSV ルールに従って自動で引用・エスケープされます。

⚠️ 制限事項と互換性

  • CSV はフラットな表形式のため、ネスト構造をそのまま表現できません。ネストした JSON オブジェクト/配列は文字列化され、逆変換しても完全には復元できません。
  • CSV の値はすべて文字列として扱われます。JSON → CSV → JSON の往復後は、数値や真偽値が文字列になることがあります。
  • UTF-8 BOM(\uFEFF)は自動で除去されますが、GBK や Shift-JIS などの他エンコーディングには非対応です。事前に UTF-8 へ変換してください。
  • JavaScript の JSON と同じく IEEE 754 の制約を受けます。53 ビットを超える整数は精度が失われる可能性があります。

🔒 プライバシーとセキュリティ

  • すべての処理はブラウザ内で完結し、データが端末外へ送信されることはありません。

❓ よくある質問

CSV とは何ですか? TSV や Excel とはどう違いますか?

CSV(Comma-Separated Values)は、1 行を 1 レコードとしてカンマで項目を区切るプレーンテキスト形式です。TSV はタブ区切りの派生形式です。Excel はどちらも開閉できますが、.xlsx 自体は別のバイナリ形式です。本ツールが扱うのは .xlsx ではなく、プレーンテキストの CSV/TSV です。 CSV は長く厳密な単一規格がありませんでしたが、2005 年の RFC 4180 で基本ルールが整理されました。項目はカンマ区切り、特殊文字を含む項目は二重引用符で囲み、項目内の二重引用符は "" としてエスケープします。実装差は今も残るため、インポート/エクスポートで差異が出ることがあります。

区切り文字の「自動」判定はどう動きますか?誤判定はありますか?

先頭行を対象に、引用符の外側にあるカンマ・タブ・セミコロン・縦線(|)の出現回数を数え、最も多いものを区切り文字として採用します。通常の CSV/TSV では高精度ですが、1 列しかないデータ(区切り文字が出ない場合)や、値の中に区切り文字候補が大量に含まれる場合は誤判定の可能性があります。その際は手動で指定してください。

「ヘッダー行を使う」のオン/オフで何が変わりますか?

オンの場合、CSV の先頭行を列名として扱い、各行は {"name": "Alice", "age": "30"} のような JSON オブジェクトになります。オフの場合、先頭行を含む全行をデータとして扱い、[["name", "age"], ["Alice", "30"]] のような二次元配列になります。JSON → CSV では、オンにするとオブジェクトのキーが先頭行に出力されます。

JSON にネストしたオブジェクトがある場合、CSV を経由して元に戻せますか?

完全には戻せません。JSON → CSV ではネストしたオブジェクト/配列は JSON.stringify により文字列化されてセルに入ります。CSV → JSON に戻しても自動でオブジェクトには復元されず、文字列のままです。構造を保ちたい場合は、事前に JSON をフラット化してください。

Excel からコピーしたデータはそのまま変換できますか?

できます。Excel のセル範囲を CSV エディターに貼り付けると通常はタブ区切りになるため、自動判定で TSV として正しく変換されます。カンマ区切りの .csv を保存したい場合は、ダウンロード前に区切り文字をカンマへ切り替えてください。

CSV フィールド内の引用符や改行はどう扱われますか?

RFC 4180 に従い、区切り文字・改行・二重引用符を含むフィールドは全体を二重引用符で囲みます。フィールド内の二重引用符は ""(連続する 2 つの二重引用符)でエスケープします。入力解析と出力生成の両方でこの規則を適用します。引用符が閉じていない場合は「CSV 入力の引用符が閉じられていません」エラーが表示されます。