Neatbo.

JSON Patch workspace

Apply RFC 6902 JSON Patch operations in order, review array index shifts and download the complete result.

Browser-local processingInputOriginal JSON + JSON Patch arrayOutputPatched JSON documentTwo UTF-8 JSON documents, up to 1 MiB each
  1. 1Add input
  2. 2Adjust settings
  3. 3Get your result

Tool input and files are processed in this browser without being uploaded.

Your input

Inputs are kept temporarily in this tab when switching tools. Refreshing or closing clears them; large results may need to be regenerated.

⌘ / Ctrl + Enter to run

Apply a JSON Patch operation array

Operations run in order against the updated document. Array indexes change after insertions and removals; a failed operation produces no output.

Paste or import the original JSON and a JSON Patch operation array.

Preparing the tool…

Before you start

Paste or import an original JSON document and a JSON Patch operation array. Apply add, remove, replace, move, copy and test in sequence; review the exact result before downloading.

How to use this tool

  1. Paste or import the original JSON and the JSON Patch operation array separately.
  2. Write RFC 6901 paths; escape slash as ~1 and tilde as ~0. Array indexes shift after insertions and removals.
  3. Run the operations in order, inspect any failed step and path, then review and download the complete JSON result.

Supported inputs and limits

Each UTF-8 JSON input is limited to 1 MiB. The patch must be an array of at most 1,000 operations; compact intermediate JSON is limited to 2 MiB. Duplicate keys and invalid UTF-8 are rejected.

Array indexes refer to the document after the preceding operation. A failed path or test reports its step and path, with no partial output. Removing the whole root is rejected because no JSON document would remain.

The preview does not overwrite the original file or send an HTTP PATCH request.

Result JSON preserves the original number tokens.

Worked example

Example input

{"items":["a","b"],"ready":false}

JSON Patch operation array:
[{"op":"test","path":"/ready","value":false},{"op":"add","path":"/items/-","value":"c"}]
Example options
{}

Example output

{
  "items": [
    "a",
    "b",
    "c"
  ],
  "ready": false
}

When something does not work

If a path or test fails, the page identifies the operation number and path and withholds the partial output. Fix the array indexes or path, then rerun.

Frequently asked questions

How do array indexes change after a remove?

Each operation sees the result of the preceding one. To remove all three items from an array, remove index 0 three times or use descending original indexes.

Which operations are supported?

RFC 6902 add, remove, replace, move, copy and test. The root cannot be removed because that would leave no JSON document.

Does this send a PATCH request?

No. Both inputs and the result stay in the browser; download the result and use your own API workflow separately.

Documentation & further reading

Related tools