| #include <iostream> |
| #include <nlohmann/json.hpp> |
| #include <iomanip> // for std::setw |
| |
| using json = nlohmann::json; |
| |
| 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; |
| } |