42 lines
1.0 KiB
C++
42 lines
1.0 KiB
C++
|
#include <iostream>
|
||
|
#include <nlohmann/json.hpp>
|
||
|
#include <iomanip> // for std::setw
|
||
|
|
||
|
using json = nlohmann::json;
|
||
|
using namespace nlohmann::literals;
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
// the original document
|
||
|
json document = R"({
|
||
|
"title": "Goodbye!",
|
||
|
"author": {
|
||
|
"givenName": "John",
|
||
|
"familyName": "Doe"
|
||
|
},
|
||
|
"tags": [
|
||
|
"example",
|
||
|
"sample"
|
||
|
],
|
||
|
"content": "This will be unchanged"
|
||
|
})"_json;
|
||
|
|
||
|
// the patch
|
||
|
json patch = R"({
|
||
|
"title": "Hello!",
|
||
|
"phoneNumber": "+01-123-456-7890",
|
||
|
"author": {
|
||
|
"familyName": null
|
||
|
},
|
||
|
"tags": [
|
||
|
"example"
|
||
|
]
|
||
|
})"_json;
|
||
|
|
||
|
// apply the patch
|
||
|
document.merge_patch(patch);
|
||
|
|
||
|
// output original and patched document
|
||
|
std::cout << std::setw(4) << document << std::endl;
|
||
|
}
|