add patch_inplace function to json class
This commit is contained in:
parent
d4daaa897f
commit
fa9a1395c8
@ -1,13 +1,20 @@
|
|||||||
# <small>nlohmann::basic_json::</small>patch
|
# <small>nlohmann::basic_json::</small>patch
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
|
// (1)
|
||||||
basic_json patch(const basic_json& json_patch) const;
|
basic_json patch(const basic_json& json_patch) const;
|
||||||
|
|
||||||
|
// (2)
|
||||||
|
void patch_inplace(const basic_json& json_patch) const;
|
||||||
```
|
```
|
||||||
|
|
||||||
[JSON Patch](http://jsonpatch.com) defines a JSON document structure for expressing a sequence of operations to apply to
|
[JSON Patch](http://jsonpatch.com) defines a JSON document structure for expressing a sequence of operations to apply to
|
||||||
a JSON document. With this function, a JSON Patch is applied to the current JSON value by executing all operations from
|
a JSON document. With this function, a JSON Patch is applied to the current JSON value by executing all operations from
|
||||||
the patch.
|
the patch.
|
||||||
|
|
||||||
|
1. applies a JSON patch to a copy of the current object and returns the copy
|
||||||
|
2. applies a JSON patch in place and returns void
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
`json_patch` (in)
|
`json_patch` (in)
|
||||||
@ -15,11 +22,13 @@ the patch.
|
|||||||
|
|
||||||
## Return value
|
## Return value
|
||||||
|
|
||||||
patched document
|
1. patched document
|
||||||
|
2. void
|
||||||
|
|
||||||
## Exception safety
|
## Exception safety
|
||||||
|
|
||||||
Strong guarantee: if an exception is thrown, there are no changes in the JSON value.
|
1. Strong guarantee: if an exception is thrown, there are no changes in the JSON value.
|
||||||
|
2. No guarantees, value may be corruted.
|
||||||
|
|
||||||
## Exceptions
|
## Exceptions
|
||||||
|
|
||||||
|
|||||||
@ -4641,13 +4641,11 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
/// @name JSON Patch functions
|
/// @name JSON Patch functions
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/// @brief applies a JSON patch
|
/// @brief applies a JSON patch in-place without copying the object
|
||||||
/// @sa https://json.nlohmann.me/api/basic_json/patch/
|
/// @sa https://json.nlohmann.me/api/basic_json/patch/
|
||||||
basic_json patch(const basic_json& json_patch) const
|
void patch_inplace(const basic_json& json_patch)
|
||||||
{
|
{
|
||||||
// make a working copy to apply the patch to
|
basic_json& result = *this;
|
||||||
basic_json result = *this;
|
|
||||||
|
|
||||||
// the valid JSON Patch operations
|
// the valid JSON Patch operations
|
||||||
enum class patch_operations {add, remove, replace, move, copy, test, invalid};
|
enum class patch_operations {add, remove, replace, move, copy, test, invalid};
|
||||||
|
|
||||||
@ -4911,7 +4909,14 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @brief applies a JSON patch to a copy of the current object
|
||||||
|
/// @sa https://json.nlohmann.me/api/basic_json/patch/
|
||||||
|
basic_json patch(const basic_json& json_patch) const
|
||||||
|
{
|
||||||
|
basic_json result = *this;
|
||||||
|
result.patch_inplace(json_patch);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5049,7 +5054,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user