JSON Patch is a web standard format for describing changes in a JSON document. It is meant to be used together with HTTP PATCH which allows for the modification of existing HTTP resources. The JSON Patch media type is application/json-patch+json
.
Filename extension |
.json-patch |
---|---|
Internet media type |
application/json-patch+json |
Developed by | P. Bryan, M. Nottingham |
Extended from | JSON |
A JSON Patch document is structured as a JSON array of objects where each object contains one of the six JSON Patch operations: add, remove, replace, move, copy, and test. This structure was influenced by the specification of XML patch. The syntax looks like this:[1][2]
There is one operation per object, though there can be many objects/operations in every array. These operations are performed in order; the first operation in the array goes first, the second operation acts upon the result of the previous operation, and so on.
JSON Patch documents are atomic in that if one operation in the document fails, then no operation will be carried out.
Operations
editThe operations do the following:
- Add
- adds a value into an object or array.
- Remove
- removes a value from an object or array.
- Replace
- replaces a value. Logically identical to using remove and then add.
- Copy
- copies a value from one path to another by adding the value at a specified location to another location.
- Move
- moves a value from one place to another by removing from one location and adding to another.
- Test
- tests for equality at a certain path for a certain value.[3]
References
edit- ^ Mark, Nottingham; Paul, Bryan (April 2013). "JavaScript Object Notation (JSON) Patch". tools.ietf.org. Retrieved 2016-12-04.
- ^ "mnot's blog: Why PATCH is Good for Your HTTP API". www.mnot.net. Retrieved 2016-12-04.
- ^ Foster, Ben (11 April 2016). "How to perform partial resource updates with JSON Patch and ASP.NET Core". benfoster.io.