CSV・JSON変換ツール|CSVからJSON・JSONからCSVへ変換
データを入力し、変換方向を選んで「変換する」を押してください。
このツールでできること
入力欄へ貼り付けたCSVをJSONのオブジェクト配列へ、または標準JSONのオブジェクト配列をCSVへ変換できます。引用符で囲まれたカンマや改行にも対応し、変換結果はそのままコピーできます。
CSVやJSONのファイルを選んで読み込む機能ではありません。変換するテキストを入力欄へ貼り付けて使用します。
使い方
- 「CSVからJSON」または「JSONからCSV」を選びます。
- 入力欄へ変換するデータを貼り付けます。
- 「変換する」を押します。
- 件数と列数、変換結果を確認します。
- 必要に応じて「結果をコピー」を押します。
入力内容や変換方向を変えると、それ以前の結果は無効になります。「クリア」を押すと入力と結果を消去し、「CSVからJSON」へ戻します。
入力例・出力例
CSVからJSONへ変換する例です。
name,code,note
山田,00123,"東京,大阪"
佐藤,9007199254740993,"1行目
2行目"
[
{
"name": "山田",
"code": "00123",
"note": "東京,大阪"
},
{
"name": "佐藤",
"code": "9007199254740993",
"note": "1行目\n2行目"
}
]
CSVには型情報がないため、00123と9007199254740993はどちらもJSON文字列になります。引用符内の改行は文字列内の改行として保持され、JSON上では\nと表示されます。
JSONからCSVへ変換する例です。
[
{"id": 9007199254740993, "active": true},
{"id": 1e400, "active": null, "note": "東京,大阪"}
]
id,active,note
9007199254740993,true,
1e400,,"東京,大阪"
後のオブジェクトだけにあるnoteも列へ追加します。欠けている値とnullは空のセルになり、カンマを含む文字列だけが引用符で囲まれます。数値はNumberへ変換せず、9007199254740993や1e400という入力時の表記を保持します。
よくある利用場面
- 表計算ソフトからコピーしたCSVをAPIテスト用JSONへ変換するとき
- JSONのオブジェクト配列をCSVとして確認・共有するとき
- 引用符内のカンマや改行を含むデータを壊さず変換するとき
CSVとJSONで保持できる情報の違い
CSVには文字列以外の型を表す仕組みがありません。そのため、CSVの00123、true、null、空セルは、それぞれJSON文字列の"00123"、"true"、"null"、""になります。
JSONからCSVへ変換すると、数値は元の数値表記、真偽値はtrueまたはfalse、文字列は復号した内容になります。欠けているキーとnullはどちらも空セルになるため、CSV上では区別できません。たとえばJSONの{"n":1,"ok":true,"none":null}をCSVへ変換してからJSONへ戻すと、値は{"n":"1","ok":"true","none":""}になります。
JSON文字列の\nや\u3042などは文字として復号してからCSVへ出力するため、元のエスケープ表記そのものは保持しません。一方、JSON数値はJavaScriptの数値に変換せず、指数表記、長い小数、安全整数範囲を超える整数、-0を入力時の表記のままCSVへ出力します。
処理仕様
CSVからJSON
CSVの先頭レコードを列名として、以降の各レコードをJSONオブジェクトへ変換します。すべてのセルを文字列として扱い、2スペースでインデントしたJSONを出力します。ヘッダーだけの場合は[]になります。
区切り文字は半角カンマです。LF・CRLF・CR形式の改行、空のセル、引用符内のカンマや改行、""で表された引用符に対応します。引用符はフィールドの先頭でだけ開始でき、閉じ引用符の後にはカンマ、改行、または入力の終端だけを置けます。引用符の外側にある空白は削除しません。
入力の先頭にUTF-8 BOM(U+FEFF)が1個ある場合は取り除きます。入力末尾にレコード区切りとして1個だけある改行は空レコードを追加しません。それ以外の空行は削除せず、1個の空セルを持つレコードとして扱うため、複数列のCSVでは列数不一致になります。
空または重複する列名、閉じていない引用符、不正な位置の引用符、列数が一致しないレコードはエラーになります。列名は空白の削除や大文字・小文字の統一を行わず、入力どおりに比較します。
JSONからCSV
トップレベルが1件以上のオブジェクト配列である標準JSONを変換します。すべてのオブジェクトのキーをJSONソース上で最初に現れた順にCSVの列へ追加するため、整数形式のキーも数値順へ並べ替えず、後のオブジェクトだけにあるキーも出力します。
JSON入力の先頭にUTF-8 BOM(U+FEFF)が1個ある場合も取り除きます。JSON構造の区切りに使える空白はスペース、タブ、LF、CRです。コメントや末尾カンマは受け付けません。
値として使用できるのは文字列、JSON数値、真偽値、nullです。欠けているキーとnullは空のセルになります。配列やオブジェクトが入れ子になった値、空のキー、復号後に同じ名前になるキーを同一オブジェクト内に含むJSONは変換できません。空の配列と、全レコードを通して列名を1個も得られない配列もエラーになります。
CSVのレコード区切りはLFです。カンマ、引用符、CR、LFのいずれかを含む列名やセルだけを引用符で囲み、その中の引用符を""へ置き換えます。
変換時の注意
- ファイル選択、Shift_JIS、TSV、任意の区切り文字、ヘッダーなしCSVには対応しません。
- JSON5、JSON Linesには対応しません。
- CSVの引用符の付け方、BOM、改行形式など、元のソース表現は変換時に正規化される場合があります。
- 非常に大きな入力の処理速度や使用可能な容量は、端末とブラウザの性能に依存します。
入力データについて
変換処理はブラウザ内で完結します。入力したCSVやJSONをToolRollのサーバーや外部サービスへ送信せず、外部ライブラリも使用しません。Cookie、Local Storage、Session Storage、IndexedDB、閲覧履歴へ入力内容や結果を保存しません。
「結果をコピー」を押したときだけ、ブラウザのクリップボード機能へ変換結果を書き込みます。JSONはデータとして解析し、JavaScriptコードとして実行しません。