CSV ファイルを開くか貼り付けると、オプションの横に JSON が表示され、設定の変更に合わせて更新されます。既定では、各行が列名をキーにしたオブジェクトになります。受け取る側のコードが別の形を求める場合は、配列の配列、列ごとの配列を持つオブジェクト、JSON Lines を選んでください。また既定ではすべての値が文字列のままなので、00731 や 20 桁の ID も元のとおりに出力されます。列を JSON の数値や true/false にしたい場合にだけ、数値の判定をオンにしてください。設定ファイル用には、CSV を YAML に変換 で同じ行を YAML として書き出せます。ファイルはブラウザー内で変換され、アップロードされることはありません。
CSV を JSON に変換する手順
.csv、.tsv、.txtファイルを開くか、ツールにドロップするか、行を貼り付けます。区切り文字と UTF-8・UTF-16 の BOM は自動で判定されます。別の区切り文字や、Windows-1252、Shift_JIS などの従来の文字コードを使う場合は、読み込み設定 で選んでください。- JSON の構造 を選びます。プレビューには、ダウンロードされる出力そのものの先頭 200 行が表示されます。
- 値の型、空のセル、入れ子、インデントを設定してから、JSON をダウンロード または コピー を選びます。
多数のファイルを同じ設定で変換するには、一括変換:複数のファイルを変換 を選んで、ファイルをまとめて選択します。各ファイルが順に変換され、結果は 1 つの ZIP としてダウンロードされます。
JSON の出力形式:オブジェクト・配列・JSON Lines
| オブジェクトの配列 | 1 行につき 1 つの、見出しをキーにしたオブジェクトです([{"sku": "00731", …}])。ほとんどの API や JavaScript のコードが前提とする構造です。 |
|---|---|
| 配列の配列 | 先頭が見出し行で、その後に各行が配列として続きます。出力が最も小さく、列の順序も明示的に保たれます。 |
| 列ごとの配列をまとめたオブジェクト | {"sku": ["00731", "00732"], …} の形式です。グラフ作成ライブラリやデータフレームを扱うツールで便利です。 |
| JSON Lines | 1 行に 1 つの JSON オブジェクトを書き、全体を配列で囲まない形式です(JSON Lines)。ログの処理、BigQuery への読み込み、1 行ずつの処理に適しています。 |
| すべての値を文字列のまま扱う | すべてのセルが、ファイルに書かれたとおりの JSON の文字列になります。これが既定の設定です。 |
| 数値と true/false を判定する | 列が JSON の数値になるのは、空でないすべての値が、変換しても変わらない単純な数値である場合だけです。つまり、先頭のゼロがなく、有効数字が 15 桁以下で、小数点にコンマを使っていない値です。true/false の列は真偽値になります。日付は文字列のままです。 |
| 空のセル | "" か null を書き出すか、そのオブジェクトからキーを省きます。 |
| ドット区切りの列名を入れ子にする | user.name と user.email は {"user": {"name": …, "email": …}} になります。ある名前が値と親の両方になる場合(user と user.name)は、それらの列は入れ子にせずにそのまま出力され、その旨が表示されます。 |
JSON での見出し・引用符で囲まれた値・ID
- 値の中の引用符で囲まれたコンマ、引用符(
"")、改行は RFC 4180 に従って読み込み、JSON の通常の文字列エスケープ(\n、\")で書き出します。 - 見出しの名前は、空白やラテン文字以外の文字も含めて、書かれたとおりに使われます。空の見出しは
Column 3、重複した見出しはname (2)になるため、値が上書きされることはありません。 __proto__やconstructorのような見出しも、通常のキーとして書き出されます。- 見出しより値が多い行には
Column 4、Column 5… という名前のキーが追加され、値が少ない行には空の値が入ります。何も失われません。 - 型を判定する場合でも、
0012が12になったり、19 桁の受注番号が丸められた浮動小数点数になったりすることはありません。そうした列は文字列のまま残ります。
CSV から JSON への変換でよくある問題
- すべての値が 1 つのキーに入ってしまう。 区切り文字の判定が誤っています。「読み込み設定」でコンマ、セミコロン、タブ、パイプのいずれかを指定し、ファイルを開き直してください。
- アクセント付きの文字が é のように表示される。 ファイルが UTF-8 ではありません。「読み込み設定」でファイルの文字コード(古い Excel で書き出したファイルでは Windows-1252、日本語のファイルでは Shift_JIS が多い)を選んでください。
- 数値の列が文字列のまま残った。
1,5、12 kg、先頭がゼロの値など、単純な数値でない値が少なくとも 1 つあります。CSV ビューアー でその列を検索して見つけてください。 - 引用符のエラーで特定のレコードが示される。 そのレコードで開いた引用符が閉じられていません。CSV エディター で修正するか、出力元のシステムの書き出し処理を確認してください。
制限とプライバシー
25 MB、10万行、200万セルまでのファイルは、リアルタイムのプレビュー付きで開きます。それより大きなファイルはストリーミング方式で変換します。ファイルを分割して 2 回読み込み(1 回目で列と型を確認し、2 回目で書き出す)、プレビューの代わりに通知が表示され、ダウンロードにはすべての行が含まれます。1 つの出力ファイルは 4 GB までです。
変換はこのタブ内のバックグラウンドのワーカーで実行されるため、ページの操作が止まることはなく、キャンセル で中止できます。CSV がサーバーに送信されることはありません。
例:商品リストを JSON オブジェクトに変換
先頭がゼロの SKU と、引用符で囲まれたコンマを含む商品リストを、既定の設定(すべて文字列、オブジェクトの配列、スペース 2 個のインデント)で変換した例です。数値と true/false を判定する をオンにすると、price は 34.9 に、in_stock は true になりますが、sku は "00731" のままです。
sku,name,price,in_stock 00731,"Desk lamp, brass",34.90,true 00732,Cable tidy,4.50,false
[
{
"sku": "00731",
"name": "Desk lamp, brass",
"price": "34.90",
"in_stock": "true"
},
{
"sku": "00732",
"name": "Cable tidy",
"price": "4.50",
"in_stock": "false"
}
]よくある質問
既定で数値が引用符で囲まれるのはなぜですか?
CSV には型がなく、00731 も 1.50 も 2024-03-01 も単なるテキストだからです。文字列のまま残すことで、JSON の内容がファイルの内容とまったく同じになることが保証されます。数量を表す列だとわかっている場合に、数値の判定を選んでください。
ここで JSON を CSV に戻せますか?
現時点ではできません。このページで変換できるのは、CSV と TSV から JSON への変換だけです。
JSON Lines と NDJSON は同じものですか?
実質的には同じです。どちらも、1 行に 1 つの完全な JSON の値を書き、改行文字で区切る形式を指します。