Settings
Result appears here after you select
{ } How to use
- Paste the original document, then the one you want.
- Select Process.
- The result is a patch array ready to send to an API that accepts one.
{ } How it works
Generate 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
- Original first, then the wanted result — 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
- Send only what changed to an API that takes application/json-patch+json.
- Record a change as a reviewable list of operations rather than a whole new file.
- Work out exactly which operations a change implies before writing them by hand.
{ } Limitations
- Only add, remove and replace are emitted. Move and copy are legal and would make some patches shorter, but detecting them means matching values across the whole document, and a wrong guess produces a patch that applies cleanly and puts data in the wrong place.
- Arrays are compared by position, so inserting near the start produces a patch that rewrites everything after it. That is correct, if longer than a human would write.
{ } 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.
How is this different from the diff tool?
The diff tool reports where two documents differ, for a person to read. A patch is instructions for a machine to apply, in a format defined by RFC 6902. Use the diff to understand a change, and a patch to transmit one.
Why is my patch longer than I expected?
Almost always because an item was inserted near the start of an array. Positions shift, so every later index genuinely differs. It is also why move is not guessed at — an insertion and a move look identical from the outside.