1#include <iostream> 2#include <nlohmann/json.hpp> 3#include <iomanip> // for std::setw 4 5using json = nlohmann::json; 6using namespace nlohmann::literals; 7 8int main() 9{ 10 // the original document 11 json document = R"({ 12 "title": "Goodbye!", 13 "author": { 14 "givenName": "John", 15 "familyName": "Doe" 16 }, 17 "tags": [ 18 "example", 19 "sample" 20 ], 21 "content": "This will be unchanged" 22 })"_json; 23 24 // the patch 25 json patch = R"({ 26 "title": "Hello!", 27 "phoneNumber": "+01-123-456-7890", 28 "author": { 29 "familyName": null 30 }, 31 "tags": [ 32 "example" 33 ] 34 })"_json; 35 36 // apply the patch 37 document.merge_patch(patch); 38 39 // output original and patched document 40 std::cout << std::setw(4) << document << std::endl; 41} 42