* 🔥 consolidate documentation * ♻️ overwork std specializations * 🚚 move images files to mkdocs * ♻️ fix URLs * 🔧 tweak MkDocs configuration * 🔧 add namespaces * 📝 document deprecations * 📝 document documentation generation * 🚸 improve search * 🚸 add examples * 🚧 start adding documentation for macros * 📝 add note for https://github.com/nlohmann/json/issues/874#issuecomment-1001699139 * 📝 overwork example handling * 📝 fix Markdown tables
1.2 KiB
1.2 KiB
nlohmann::basic_json::diff
static basic_json diff(const basic_json& source,
const basic_json& target);
Creates a JSON Patch so that value source can be changed into the value target by calling
patch function.
For two JSON values source and target, the following code yields always #!cpp true:
source.patch(diff(source, target)) == target;
Parameters
source(in)- JSON value to compare from
target(in)- JSON value to compare against
Return value
a JSON patch to convert the source to target
Exception safety
Strong guarantee: if an exception is thrown, there are no changes in the JSON value.
Complexity
Linear in the lengths of source and target.
Notes
Currently, only remove, add, and replace operations are generated.
Examples
??? example
The following code shows how a JSON patch is created as a diff for two JSON values.
```cpp
--8<-- "examples/diff.cpp"
```
Output:
```json
--8<-- "examples/diff.output"
```
See also
Version history
- Added in version 2.0.0.