1# <small>nlohmann::basic_json::</small>patch_inplace 2 3```cpp 4void patch_inplace(const basic_json& json_patch) const; 5``` 6 7[JSON Patch](http://jsonpatch.com) defines a JSON document structure for expressing a sequence of operations to apply to 8a JSON document. With this function, a JSON Patch is applied to the current JSON value by executing all operations from 9the patch. This function applies a JSON patch in place and returns void. 10 11## Parameters 12 13`json_patch` (in) 14: JSON patch document 15 16## Exception safety 17 18No guarantees, value may be corrupted by an unsuccessful patch operation. 19 20## Exceptions 21 22- Throws [`parse_error.104`](../../home/exceptions.md#jsonexceptionparse_error104) if the JSON patch does not consist of 23 an array of objects. 24- Throws [`parse_error.105`](../../home/exceptions.md#jsonexceptionparse_error105) if the JSON patch is malformed (e.g., 25 mandatory attributes are missing); example: `"operation add must have member path"`. 26- Throws [`out_of_range.401`](../../home/exceptions.md#jsonexceptionout_of_range401) if an array index is out of range. 27- Throws [`out_of_range.403`](../../home/exceptions.md#jsonexceptionout_of_range403) if a JSON pointer inside the patch 28 could not be resolved successfully in the current JSON value; example: `"key baz not found"`. 29- Throws [`out_of_range.405`](../../home/exceptions.md#jsonexceptionout_of_range405) if JSON pointer has no parent 30 ("add", "remove", "move") 31- Throws [`out_of_range.501`](../../home/exceptions.md#jsonexceptionother_error501) if "test" operation was 32 unsuccessful. 33 34## Complexity 35 36Linear in the size of the JSON value and the length of the JSON patch. As usually only a fraction of the JSON value is 37affected by the patch, the complexity can usually be neglected. 38 39## Notes 40 41Unlike [`patch`](patch.md), `patch_inplace` applies the operation "in place" and no copy of the JSON value is created. 42That makes it faster for large documents by avoiding the copy. However, the JSON value might be corrupted if the 43function throws an exception. 44 45## Examples 46 47??? example 48 49 The following code shows how a JSON patch is applied to a value. 50 51 ```cpp 52 --8<-- "examples/patch_inplace.cpp" 53 ``` 54 55 Output: 56 57 ```json 58 --8<-- "examples/patch_inplace.output" 59 ``` 60 61## See also 62 63- [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902) 64- [RFC 6901 (JSON Pointer)](https://tools.ietf.org/html/rfc6901) 65- [patch](patch.md) applies a JSON Merge Patch 66- [merge_patch](merge_patch.md) applies a JSON Merge Patch 67 68## Version history 69 70- Added in version 3.11.0. 71