Create an RFC 6902 JSON Patch from two documents, or apply one and see the result
Runs in your browser. Nothing you type is sent anywhere. Checked against sources on 17 Oct 2026.A JSON Patch is a list of operations that turns one JSON document into another. Paste two documents and this tool writes the RFC 6902 patch, or paste a patch and see the result. It handles all 6 operations, RFC 7386 merge patches too, and passes the shared json-patch-tests suite.
Paste the original document into Original, or press Try an example.
Paste the changed document into Changed; the patch appears as you type.
Switch to Apply patch to run a patch on the original and check the result.
Press Copy to take the patch or the patched document.
REST APIs use PATCH requests to change part of a resource without resending all of it. The body is usually one of two standard formats, and getting either one exactly right by hand is fiddly. This page writes them for you and tests them before they reach a server.
Four modes.
| Mode | You paste | You get |
|---|---|---|
| Create patch | Original and changed document | An RFC 6902 JSON Patch |
| Apply patch | Original and a JSON Patch | The patched document, or the failing operation |
| Create merge patch | Original and changed document | An RFC 7386 merge patch |
| Apply merge patch | Original and a merge patch | The merged document |
How patches are created. Objects are compared key by key; arrays are matched on their longest common run of equal items, so removing one item from the middle of a list is one remove operation, not a replace of everything after it. A removal next to an insertion becomes a replace, and nested changes get their own paths. Keys containing a slash or tilde are escaped as ~1 and ~0, as RFC 6901 requires.
How patches are applied. Operations run in order on a copy; if any fails, nothing is applied and the error gives the operation number, its path and the reason. The test operation compares by value, so key order does not matter, while a leading zero in an index such as 01 is rejected, as the specification says.
Merge patch limits. Because null means delete in a merge patch, a changed document holding null cannot be expressed; the page lists those keys and suggests a JSON Patch instead.
How it was checked. Every record of the json-patch-tests suite that the suite enables, the 15 cases of RFC 7386 Appendix A and the RFC 6901 pointer examples pass, and 400 random edits round-trip exactly. Nothing you paste leaves your browser. To compare two documents as readable text instead, use JSON Diff.
JSON Patch (RFC 6902) is a list of operations such as add, remove and replace, each with a path, so it can change array items and set values to null. JSON Merge Patch (RFC 7386) is a partial document: keys to change, null for keys to delete. Merge patches are simpler; JSON Patch is more precise.
Paste the original document on the left and the changed one on the right with Create patch selected. The page compares them key by key, matches array items by their longest common run, and writes the add, remove and replace operations. Applying the result to the original gives the changed document exactly.
Each path must already exist, except the last part of an add. A missing parent key, an array index past the end, an index with a leading zero such as 01, or a key containing a slash not written as ~1 makes the whole patch fail. The message names the operation number and the path.
Write ~1 for a slash and ~0 for a tilde, as RFC 6901 defines. The key a/b becomes the path /a~1b, and m~n becomes /m~0n. The generator escapes keys this way automatically, so a created patch always uses valid pointers.
A path ending in - refers to the position after the last array item, so an add operation with the path /tags/- appends its value to the tags array. Only add, and move or copy as a target, accept -; the other operations need a real index from 0 upward.
No. Comparing documents, creating the patch and applying it all happen in your browser, and nothing is uploaded or stored. The implementation passes the shared json-patch-tests suite and the 15 merge patch cases from RFC 7386 Appendix A.
Rates and rules change; check the source before you rely on a figure.
Still stuck? Ask about JSON Patch Generator and Tester and anybody who knows can answer. No account needed.
Same job, other tools: TSV to JSON – Convert tab-separated values, such as a paste from Excel, into JSON · JSON to YAML – Turn JSON into clean, readable YAML for configs · Query String Parser – Split a URL query string into a table of decoded parameters.