機能の説明
JSON と CSV を双方向に変換します。JSON → CSV はオブジェクトの配列(または単一オブジェクト)を受け取ってテーブルを生成します:すべてのキーの和集合がヘッダー行になり、オブジェクトごとに 1 行が続きます。CSV → JSON は RFC 4180 のクォート規則をパースし、オブジェクトの配列を再構築します。Swap ボタンは方向を反転し、現在の出力を新しい入力として引き継ぐため、コピー&ペーストなしでドキュメントを往復できます。グリッドの下の統計行は、行数またはアイテム数と出力サイズ(バイト)を表示します。
使い方
- セグメントコントロールで方向を選びます:JSON → CSV または CSV → JSON。Swap は同じ切り替えに加えて、現在の出力を入力へ移します。
- 左側のペインにドキュメントを貼り付けます。
- 変換結果は右側にライブ表示されます。Copy で取り出せます。
- 統計行を読みます:JSON → CSV では
N rows · M bytes、CSV → JSON ではN items · M bytes。
例
[{"name":"ada","role":"admin"},{"name":"bob","role":"user"}]
は次のようになります:
name,role
ada,admin
bob,user
統計行: 2 rows · 28 bytes。
カンマ、クォート、改行を含むフィールドは RFC 4180 に従ってクォートされます:[{"price":"1,000"}] はヘッダー行に price、データ行に "1,000" を出力します。CSV → JSON はこのクォートを正確に元に戻します。
テーブルモデルの仕組み
両方のフォーマットは同じ形を表現します:名前付きの列を持つ行のテーブルです。JSON ではそれをオブジェクトの配列と綴り、CSV ではヘッダー行 + レコードごとに 1 行と綴ります:
| 概念 | JSON | CSV |
|---|---|---|
| テーブル | オブジェクトの配列 | ファイル全体 |
| 列 | オブジェクトのキー | ヘッダー項目 |
| 行 | 1 つのオブジェクト | 1 行 |
| セル | 値 | フィールド |
JSON → CSV は入力を 1 パスで走査し、出会ったすべてのキーを初出順にヘッダーとして収集します。キーを持たないオブジェクトには空のセルが当たります。
ここからは、CSV のセルがプレーンテキストであるがゆえに、2 つのフォーマットが等価でなくなる箇所です:
- ネストされたオブジェクトや配列は文字列表現(
[object Object]、1,2)になり、元には戻りません。 - 数値と真偽値はテキストになります:値
1は文字列"1"として往復します。 - 空の CSV セルは
""として読み戻されます。
したがって、値がプレーンな文字列や数値を超えるものなら、JSON → CSV → JSON は必ずロスを生じます。このペアは表形式データに使い、ネストされたドキュメントは JSON のまま保持してください。
補足事項
- 決定論的: 列の順序は各キーの初出順に従います。出力は
\n改行で、末尾に改行を持ちません。 - 往復チェック: 一方向に変換し、Swap を押して戻し、2 つのドキュメントを diff すると、スプレッドシートが何を保持するかが正確にわかります。
- プライベート: すべての変換はブラウザー内でローカルに実行されます。
- 関連ツール: JSON Formatter、JSON Validator、JSON Minify。