2017-12-14 06:36:22 +08:00
|
|
|
#include <iostream>
|
2018-02-02 05:20:26 +08:00
|
|
|
#include <nlohmann/json.hpp>
|
2017-12-14 06:36:22 +08:00
|
|
|
#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;
|
|
|
|
}
|