CSV・JSON変換ツール|CSVからJSON・JSONからCSVへ変換

CSV・表データツール
変換方向

データを入力し、変換方向を選んで「変換する」を押してください。

このツールでできること

入力欄へ貼り付けたCSVをJSONのオブジェクト配列へ、または標準JSONのオブジェクト配列をCSVへ変換できます。引用符で囲まれたカンマや改行にも対応し、変換結果はそのままコピーできます。

CSVやJSONのファイルを選んで読み込む機能ではありません。変換するテキストを入力欄へ貼り付けて使用します。

使い方

  1. 「CSVからJSON」または「JSONからCSV」を選びます。
  2. 入力欄へ変換するデータを貼り付けます。
  3. 「変換する」を押します。
  4. 件数と列数、変換結果を確認します。
  5. 必要に応じて「結果をコピー」を押します。

入力内容や変換方向を変えると、それ以前の結果は無効になります。「クリア」を押すと入力と結果を消去し、「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コードとして実行しません。