Settings
Result appears here after you select
{ } How to use
- Paste the document, then the patch array.
- Select Process.
- The patched document comes back, or a message naming the operation that failed.
{ } How it works
Apply JSON Patch works on the text you provide. Adjust the options, then select Process ▸ and it runs entirely in your browser — nothing is uploaded to a server — then shows the result in the Output panel.
Inputs
- Document first, then the patch array — paste or type your input in the left panel (use Sample for an example)
- Indentation — choose one — Minified, 2 spaces, 4 spaces (default: 2 spaces)
Output
JSON — copy it, download it, or switch the Output panel to Tree view to explore it.
{ } Common uses
- See what a patch will do before sending it anywhere.
- Work out why a patch an API rejected does not apply.
- Replay a recorded change onto a document by hand.
{ } Limitations
- Supports add, remove and replace. A patch using move, copy or test is refused by name rather than partly applied.
- Replace fails on a member that does not exist, as the specification requires. That is what turns a typo in a path into an error instead of a new field appearing.
{ } FAQ
Is my data uploaded to a server?
No. Everything runs locally in your browser — your files never leave your device.
Can I process more than one file at once?
This tool works on one input at a time.
Is this tool free?
Yes — it’s completely free and needs no sign-up.
Why did replace fail on a path that looks right?
Because replace is defined as failing when the member is not there — it changes something, it does not create it. Use add if the property may be missing. A typo in a path would otherwise silently add a field nobody asked for.
What happens if one operation fails half way through?
Nothing is returned. The document is rebuilt from a copy, so a failure leaves you with the original rather than something half-patched that is neither the before nor the after.
What does the "-" in a path mean?
The end of an array. `/skills/-` with add appends, which saves you having to know how long the array already is.