CSV・JSON相互変換ツール|引用符とタブ区切りに対応(無料・送信なし)

APIから受け取ったJSONを表計算ソフトで見たい。逆に、Excelから出したCSVをそのままプログラムに渡したい。単純な置換では、引用符で囲まれたカンマや、セル内の改行で必ず壊れます。

このツールは、CSVの引用符ルールを正しく解釈して変換します。JSONへの変換時は数値と true/false を自動で型変換し、CSVへの変換時はすべてのキーを列として拾います。

処理はすべてブラウザ内で完結し、貼り付けた内容は送信されません。顧客データや業務データにも使えます。

CSV・JSON相互変換

CSVをJSONに、JSONをCSVに変換します。区切り文字と引用符の扱いにも対応。

貼り付けると自動で変換します。

CSVで壊れる原因は引用符

CSVは「カンマで区切る」だけの形式に見えますが、実際にはカンマそのものを値に含められるルールがあります。

値に含まれるものCSVでの書き方単純な分割だとどうなるか
カンマ"東京都,千代田区"2つの値に割れる
改行"1行目
2行目"
別の行として扱われる
引用符そのもの"彼は""はい""と言った"途中で切れる
先頭のゼロ"01234"数値化されて 1234 になる
先頭の記号"=SUM(A1)"表計算ソフトが数式と解釈する

「カンマで split する」だけの処理は、実データではほぼ確実に壊れます。このツールは1文字ずつ読み進めて引用符の内外を判定するため、上記のケースを正しく扱います。

先頭のゼロが消える問題には注意してください。郵便番号、電話番号、社員番号などは、JSONに変換する際に数値として扱われると先頭のゼロが失われます。このツールは「01234」のように先頭が0の文字列は数値化せず、文字列のまま保持します。

型の自動変換について

CSVはすべての値が文字列ですが、JSONには型があります。このツールは次の規則で変換します。

CSVの値JSONでの型結果
123数値123
-45数値-45
1.5数値1.5
01234文字列"01234"(ゼロを保持)
true / false真偽値true / false
山田文字列"山田"
空欄文字列""

数値に見えても先頭がゼロなら文字列として扱います。これは郵便番号や電話番号を保護するためです。逆に、意図的に数値として扱いたい場合は、先頭のゼロを外してから変換してください。

JSONの整形や検証だけが必要な場合はJSON整形・検証ツールをご利用ください。エラーの位置を行と桁で示します。

JSONからCSVへ変換するときの注意

JSONの構造変換できるか扱い
[{"a":1},{"a":2}]できる標準的な形
[{"a":1},{"b":2}]できるキーが違っても全部を列にする
[{"a":{"b":1}}]できる入れ子はJSON文字列として1セルに入る
{"data":[...]}できない最上位が配列である必要がある
[1,2,3]できないオブジェクトの配列にする
[]できない空の配列

最上位が配列でない場合は、配列の部分だけを取り出して貼り付けてください。APIのレスポンスは {"items":[...]} のように包まれていることが多いので、items の中身だけをコピーします。

入れ子のデータ

オブジェクトや配列が値として入っている場合、そのセルにはJSON文字列がそのまま入ります。表計算ソフトで扱うなら、事前に平坦化しておくほうが実用的です。

表計算ソフトで開くときの文字化け

状況原因対処
日本語が文字化けする文字コードの解釈違いUTF-8を明示して読み込む
先頭のゼロが消える数値として解釈された列の書式を「文字列」に指定して読み込む
日付が勝手に変わる日付として解釈された同上
1列にまとまってしまう区切り文字の不一致タブ区切りを試す
改行を含むセルが崩れる引用符が外れているこのツールの出力をそのまま使う

表計算ソフトに貼り付ける目的なら、区切り文字を「タブ」にすると扱いやすくなります。タブ区切りの文字列は、そのままセルに貼り付けると自動で列に分かれるためです。カンマ区切りだと1列にまとまってしまう場合があります。

ファイルとして保存してから開く場合は、文字コードの指定が必要になることがあります。日本語が化ける場合は、テキストエディタでUTF-8として保存し直してから読み込んでください。

この記事で使える無料ツール

まとめ

CSVを扱うときの落とし穴は、引用符で囲まれたカンマと改行です。単純にカンマで分割する処理は、実データでほぼ確実に壊れます。このツールは引用符のルールを正しく解釈します。

JSONへの変換では、先頭がゼロの数値は文字列のまま保持します。郵便番号や電話番号を守るためです。表計算ソフトに貼り付けるなら、区切り文字をタブにすると列が自動で分かれて扱いやすくなります。