CSV JSON 変換
CSVとJSONを相互変換。区切り文字の自動判定、ヘッダー行、型変換に対応し、大きなIDや先頭の0も崩れません。無料・登録不要、データは送信されません。
- 相互変換
- 区切り自動判定
- 大きな数値も正確
- 文字化け対策
データはブラウザ内で変換され、アップロードも保存もされません。
🔒 計算はすべてブラウザ内で行われ、データがサーバーに送信されることはありません。
こんなときに使えます
- Excel のデータをエンジニアに渡す:Excel で保存した CSV を JSON に変換して、そのまま Web ページや API で使えます。
- API の結果を表にする:API から返った JSON 配列を CSV にして、Excel や Google スプレッドシートで分析できます。
- システムへの取り込み前チェック:列と区切り文字を確認し、007 や電話番号(090…)の先頭の 0 が消えないようにできます。
- スプレッドシートから直接貼り付け:表計算ソフトからコピーしたセルはタブ区切りなので、貼り付けるだけで自動判定して変換します。
使い方
- 変換方向(CSV → JSON または JSON → CSV)を選び、データを「入力」に貼り付けるか「ファイルを開く」で .csv、.tsv、.json を読み込みます。結果はすぐに「出力」に表示されます。
- 必要に応じてオプションを変更します。区切り文字は自動判定または手動指定、「1行目をヘッダーにする」でCSVの1行目を項目名として扱い、「型を変換」で数値と true/false をJSONの数値・真偽値にします。
- 「コピー」か「ダウンロード」で結果を取得します。ExcelでCSVを開く場合は「BOMを付ける」をオンのままにしてください。「入れ替え」で出力を入力に戻し、逆方向に変換して確認できます。
使用例
CSV → JSON(ヘッダーと型変換をオン):ヘッダー id,name,price,active と、9007199254740993,Amy,1200.50,true、007,Ben,300,false の2行を入力すると、2行 × 4列になります。300 は数値、true と false は真偽値になりますが、安全な整数の範囲を超える 9007199254740993、先頭に0がある 007、末尾に0がある 1200.50 は文字列のまま残り、CSVに戻しても元どおりです。
JSON → CSV:[{"name":"Amy","tags":["a","b"]},{"name":"Ben","email":"ben@example.com"}] を入力すると、2件のキーの和集合 name、tags、email が列になり、2行 × 3列になります。Amy には email、Ben には tags がないため、そのセルは空欄です。tags の配列はJSON文字列になり、カンマと引用符を含むので CSV では "[""a"",""b""]" と書かれます。
結果の見方
- ステータスの「行 × 列」はデータ行の数で、ヘッダー行は含みません。CSVの空行は読み飛ばし、行数に数えません。
- 「項目数がヘッダーと一致しない」と出たら、ヘッダーより項目が多い・少ない行があります。多くは値にカンマが含まれているのに引用符で囲まれていないことが原因です。足りない行は後ろのキーが欠け、余った値は __parsed_extra に入ります。
- 「型を変換」がオフのときはJSONの値がすべて文字列です。オンでも変換するのは数値と true/false だけで、空のセルは空文字列のまま、日付も文字列のままです。
- ヘッダーに同じ名前がある場合は自動で名前を変えます。たとえば a が2つあれば a と a_1 になり、後の列が前の値を上書きしません。
仕組みと計算方法
- CSVの解析と出力には papaparse を使い、引用符の扱いは RFC 4180 に従います。区切り文字・引用符・改行を含む項目はダブルクォートで囲み、中の引用符は2つ重ねます。出力の改行は CRLF です。
- 区切り文字の自動判定では、カンマ・タブ・縦線・セミコロンのうち、各行の項目数が最もそろうものを選びます。1列しかない場合は判定できないためカンマとして扱います。
- 型変換のルール:数値にして文字列に戻した結果が元とまったく同じで、整数なら ±(2^53−1) の安全な範囲内にある場合だけ数値にします。
- JSON → CSV:オブジェクトの配列は全キーの和集合(最初に出てきた順)を列にし、2次元配列はそのまま1行ずつ出力、値だけの配列は value 列に入れます。安全な範囲を超える整数は解析前に元の文字列を保持するため、丸められません。
- ファイルはまずUTF-8として読み、正しいUTF-8でなければBig5で読み直します。
注意点と制限
- 平らな表のみ対応です。入れ子のJSONを user.name のような複数列には展開せず、オブジェクト全体をJSON文字列として1セルに入れます。
- 区切り文字の自動判定は各行の項目数がそろっていることが前提です。データが少ない、項目数がばらばらな場合は誤ることがあるので、手動で選んでください。
- 自動で判別できる文字コードは UTF-8 と Big5 だけです。Shift_JIS などのファイルは先にUTF-8で保存し直してください。
- データはすべてブラウザのメモリ上で処理するため、数十MB以上のファイルでは動作が重くなることがあります。
よくある質問
007 や 1.50 が数値に変換されないのはなぜですか?
「型を変換」では、数値にして文字列に戻したときに元とまったく同じになる値だけを変換します。007 は 7、1.50 は 1.5 になってコードや金額の書式が崩れるため、文字列のまま残し、CSVに戻しても内容が変わらないようにしています。
ダウンロードしたCSVをExcelで開くと文字化けします。
「BOMを付ける」をオンにしてダウンロードしてください。BOMはファイル先頭の目に見えない印で、ExcelはこれでUTF-8と判断します。なお、UTF-8でないCSVを開いた場合はBig5(繁体字中国語)として読み込みますが、Shift_JISには対応していないため、先にUTF-8で保存し直してください。
JSONの入れ子のオブジェクトや配列はCSVでどうなりますか?
CSVは平らな表なので、入れ子のオブジェクトや配列は ["a","b"] のようなJSON文字列として1つのセルに入ります。レコードごとにキーが違う場合は全キーの和集合を列にし、値がないセルは空欄になります。
データはアップロードされますか?
いいえ。解析と変換はすべてブラウザ内で行われ、サーバーへの送信や保存はしません。ページを閉じればデータは消えます。
Excel を JSON に変換するには?
Excel の「名前を付けて保存」でファイルの種類を「CSV UTF-8(コンマ区切り)」にして保存し、「ファイルを開く」で読み込みます。またはセルを選択してコピーし、そのまま貼り付けても大丈夫です。変換方向は「CSV → JSON」を選んでください。
Google スプレッドシートのデータもそのまま使えますか?
使えます。範囲を選択してコピーし、そのまま貼り付けてください(タブ区切りは自動で判定します)。または「ファイル → ダウンロード → カンマ区切り形式(.csv)」で CSV を保存してから開くこともできます。
変換後の JSON はどんな形になりますか?
「1行目をヘッダーにする」にチェックすると、各行が1つのオブジェクトになり、キーは列名、全体はオブジェクトの配列になります。チェックを外すと、各行が1つの配列になります。