CSVとJSONは、拡張子だけを変えても相互変換できません。列名・区切り・データ型を確認し、小さいサンプルで出力を照合すると、IDの先頭ゼロや空欄の意味を失うミスを見つけやすくなります。
CSV⇄JSON変換ツールはテキストを貼り付けて使います。CSVからは文字列の値を持つオブジェクトの配列を作り、JSONからは表形式のCSVを出力します。入出力はブラウザ内で処理されます。
まず確認:何が残り、何が変わる?
| 変換する値 | 現行ツールの出力 | 確認・対処 |
|---|---|---|
| CSVの00123 | JSONの文字列 “00123” | 表計算ソフトで先に数値化されていた0は復元できない |
| CSVの12.5、true、空欄 | “12.5”、“true”、“” | 数値・真偽値・nullへ自動推定しない |
| JSONのnull、存在しないキー、空文字 | CSVではいずれも空欄 | 区別が必要なら変換前に別の列や表記を決める |
| JSONの配列・オブジェクト | 文字列化され、構造を保てない | 先に平坦な行・列へ展開する |
| JSONの長い数値ID | 数値解析時に精度を失う可能性 | IDは引用符で囲んだ文字列として入力する |
| 重複したCSVヘッダー | 同じキーの後の値が上書きする | ヘッダーは空でない一意な名前へ直す |
| ヘッダーより多いセル | 対応するキーがない列は残らない | 全行の列数をそろえる |
CSVの一般的な引用規則はRFC 4180、JSONの型と数値の相互運用性はRFC 8259で確認できます。本ツールは業務データの完全性を自動で監査するものではありません。
例1:カンマと引用符、先頭ゼロを含むCSV
次をそのまま入力欄へ貼り付けます。区切りをカンマ、方向をCSV → JSON、「ヘッダー行あり」をオンにして「変換」を押します。
id,name,note
00123,太郎,"東京,大阪"
00456,花子,"He said ""Hi"""
期待する出力は次のとおりです。
[
{ "id": "00123", "name": "太郎", "note": "東京,大阪" },
{ "id": "00456", "name": "花子", "note": "He said \"Hi\"" }
]
- データは2件、各レコードは3キーです。
- セル内のカンマは列の区切りではありません。セル全体を
"..."で囲みます。 - セル内の
"は""と重ねます。JSONでは\"に変わります。 - 00123は数値123ではなく、文字列として残ります。
引用したセルの中には改行も含められます。その場合、見た目の行数とレコード数は一致しません。ヘッダーなしならチェックを外し、キーがcolumn1、column2…になることを確認します。
例2:JSONからCSVへ戻し、失われる型を確認する
方向をJSON → CSVへ切り替え、次を入力します。
[
{ "id": "00123", "score": 12.5, "note": null },
{ "id": "00456", "score": 0, "note": "" }
]
カンマ区切りでの出力は次の表形式です。
id,score,note
00123,12.5,
00456,0,
CSVをもう一度JSONにすると、scoreは数値ではなく文字列、noteは両方 "" になります。往復して同じ意味に戻るとは限りません。全オブジェクトのキーの和集合が列になり、欠けたキーも空欄になります。
長いIDや入れ子のJSONはどうする?
JavaScriptで正確に扱える整数範囲を超える数値IDは、解析された時点で値が変わる可能性があります。例として 9007199254740993 をIDに使うなら、“9007199254740993” と引用符で囲みます。すでに丸められた値を、CSV側で文字列にしても元には戻りません。
{"address":{"city":"Tokyo"}} のような入れ子は、先にaddress_cityなどの列へ展開します。現行ツールは自動でフラット化せず、オブジェクトは [object Object] のような文字列になる場合があります。
変換からダウンロードまでの手順
- 原本を保存し、個人情報を含まない数件のサンプルを作ります。列名は空でない一意の名前にし、区切り文字・引用符・改行を含まない単純な名前を使います。
- 変換ツールで方向と区切り(カンマ・タブ・セミコロン)を選びます。ヘッダーのチェックはCSV→JSONで使います。JSON→CSVは列名付きで出力します。
- 「変換」後、出力欄で件数・列数・ID・空欄を原本と照合します。「コピー」または「ダウンロード」で保存し、取り込み先でも数件を確認します。
上の2件を貼り付けて検算
00123と引用符がそのまま残るか確認
CSV→JSONは文字列として変換します。ダウンロード前に件数と列名を照合してください。
文字化け・エラーがないときも確認すること
- これは文字コード変換ツールではありません。すでに文字化けしたCSVを貼り付けても元の文字には戻りません。元ファイルを正しい文字コードで読み直します。
- 出力はUTF-8、CSVの改行はLFです。UTF-8 BOM付きCSVを選ぶ設定はありません。表計算ソフトのインポートで文字コードと列の型を指定してください。
- 入力全体の前後の空白は除去され、空セルだけの行はスキップされます。空行の位置や端の空白が意味を持つ用途には適しません。
- 不正な引用符などをすべて検出する厳密なCSV検証器ではありません。エラーが出ない=原本を完全に保持したとは判断しません。
- OWASPのCSV Injection解説のとおり、外部データが
=などから始まる場合、表計算ソフトで数式として解釈される可能性があります。引用符で囲むだけでは対策になりません。出所と取り込み方法を確認し、このツールを数式の無害化機能として使わないでください。
よくある質問
大量のデータでも処理できますか?
処理量は端末・ブラウザ・列数・内容に依存します。固定の行数や処理時間は保証しません。小さいデータで確認してから分割して処理し、重要なデータは元ファイルを保持します。
JSONの構文エラーを調べるには?
JSON整形ツールで構文を確認できます。ただし、正しい構文でも、このCSV変換に適した平坦なオブジェクトの配列とは限りません。
次回のデータ更新でも使えますか?
ツールをお気に入りへ追加してマイツールから開けます。変換データ自体は保存されず、再訪時には原本から入力し直します。方向・区切り・列のルールを手元の作業メモに残すと照合を繰り返せます。
この記事の確認範囲
2026年10月24日にRFC・OWASPの説明と現行パーサーを照合し、文字列化・nullと空欄・引用符・先頭ゼロの例を検算しました。ネストの自動展開、型の完全保存、CSV Injection防止、すべてのCSV方言への適合は対象外です。文字列の差も確認するならテキスト比較のガイドを参照してください。