JSON Patch ビルダー (RFC 6902)
開発
RFC 6902 JSON PatchはJSONドキュメントへの変更を記述するワイヤーフォーマット — PATCHリクエスト·楽観的更新·元に戻すの履歴·運用変換に便利。このツールは両方向を処理: sourceとtarget JSONを貼り付け、最小patchを取得; またはsourceとpatchを貼り付け、適用後の結果を確認。diffはスラッシュやチルダを含むキーに `~0`/`~1` JSON Pointerエスケープを使った再帰的構造比較を使用。apply側は6つのopすべてを尊重 — `test`(アサーション失敗はエラー)·`copy`·`move` 含む。サーバーを呼ぶ前のpatchテスト、例で正しいopを見つけるのに便利。
—
Patch (RFC 6902)
[
{
"op": "replace",
"path": "/age",
"value": 31
},
{
"op": "replace",
"path": "/address/city",
"value": "Busan"
},
{
"op": "remove",
"path": "/address/zip"
},
{
"op": "add",
"path": "/address/country",
"value": "KR"
},
{
"op": "replace",
"path": "/tags/1",
"value": "owner"
},
{
"op": "add",
"path": "/tags/2",
"value": "user"
}
]純粋RFC 6902 — add·remove·replace·move·copy·test opと `~0`/`~1` pointerエスケープに対応。
使い方
- Diffモード: sourceとtargetを貼り付け、patch JSONを確認。片方を編集してpatchがどう変わるか確認。
- Applyモード: sourceとpatch配列を貼り付け、結果ドキュメントを確認。エラー(不正なpointer·失敗した `test`)はインラインで表示。
- JSON Pointer構文: `/foo/0/bar` は `foo.0.bar` を辿る。`/` は `~1`、`~` は `~0` でエスケープ。配列パスの末尾 `-` は『追加』の意味。
よくある質問
- なぜ新しいドキュメントを送らない?
- 1つは帯域幅。2つは並行性: AliceとBobの両方がドキュメントを編集する場合、patchは意味的にマージ可能(`replace /name` は `add /tags/-` と互換性あり)、2つの完全ドキュメントなら勝者を選ばないといけない。さらにpatchは何が·いつ変わったかの正確な監査証跡。
- JSON Merge Patch (RFC 7396) と同じ?
- 違う。Merge Patchはよりシンプル — 存在するキーが上書きし `null` が削除する部分ドキュメントを送る。人間には簡単だが精度を失う(配列に追加できない·リテラル `null` 値を表現できない·原子的テストなし)。RFC 6902(このツール)は正確なワイヤーフォーマット。RFC 7396は利便性フォーマット。
関連ツール
JWT デコーダー
JWT のヘッダー・クレーム・有効期限を即座に確認。
開発00
UUID ジェネレーター
ランダムなバージョン 4 UUID をまとめて生成し、コピー。
開発00
ハッシュ生成 (SHA)
テキストから SHA-1・SHA-256・SHA-384・SHA-512 ハッシュを生成。
開発00
URL エンコーダー / デコーダー
URL 用にテキストをパーセントエンコード、または URL をデコード。
開発00
Base64 エンコーダー / デコーダー
テキストを Base64 にエンコード、または Base64 をテキストにデコード。
開発00
JSON フォーマッター & バリデーター
ブラウザで JSON を整形・並べ替え・圧縮・検証できます。
開発00