Data workflow
JSON Pointer, JSON Patch and Merge Patch: paths and safe changes
A path identifies a value; a patch describes a change. Neither proves that data matches your application's schema or is safe to publish.
Content updated: · Maintainer and corrections
Exact paths, not JSONPath
RFC 6901 uses slash-separated tokens. Escape ~ as ~0 and / as ~1, in that order when encoding. The empty pointer selects the document; / selects an object member whose key is empty. A missing path is different from a value of null.
Array indices are canonical non-negative integers: 0 is valid, 01 is not. The - token is not an existing array item; JSON Patch uses it only when adding to the end. URI fragment form starts with # and percent-encodes the pointer. Whitespace in a key is significant; do not trim it.
Choose a change contract
RFC 6902 JSON Patch is an ordered array of add, remove, replace, move, copy and test operations. Paths and from are plain JSON Pointers, not URI fragments. test compares JSON values, including object members irrespective of their order. An operation failure stops the entire transaction in this workbench; no partial result can be copied or downloaded.
RFC 7396 Merge Patch uses object structure: null removes a member, objects merge recursively, and arrays or other values replace the target as a whole. Use JSON Patch to set an object member to null or edit a particular array item. Removing the root with JSON Patch leaves no document, not a JSON null.
Keep precision and export boundaries explicit
JSON syntax permits numbers beyond JavaScript's exact range and does not require unique object keys. These tools conservatively reject duplicate keys, unpaired Unicode surrogates, negative zero and numeric tokens that change value when serialized. Store identifiers, large integers and exact decimals as strings instead of accepting silent rounding.
JSONL requires one complete JSON value on every line. A final LF or CRLF is allowed; interior blank lines and a UTF-8 BOM are rejected. One bad record blocks the complete export. Preview limits do not truncate downloaded data. Compact JSON avoids excessive indentation allocation for deeply nested input.
Inputs stay in page memory and are never put in links, storage or tool analytics. Use disposable data and review exports before sharing. Prototype-related patch paths are refused as an explicit tool restriction; matching a path is neither authorization nor anonymization.
{"a/b":{"~key":null},"":7}
Pointer: /a~1b/~0key → null
Pointer: / → 7
Patch: [{"op":"replace","path":"/a~1b/~0key","value":3}]
Merge Patch: {"a/b":{"~key":null}} → deletes ~keyData provenance