xref: /third_party/json/docs/examples/patch.cpp (revision c5f01b2f)
1#include <iostream>
2#include <iomanip>
3#include <nlohmann/json.hpp>
4
5using json = nlohmann::json;
6using namespace nlohmann::literals;
7
8int main()
9{
10    // the original document
11    json doc = R"(
12        {
13          "baz": "qux",
14          "foo": "bar"
15        }
16    )"_json;
17
18    // the patch
19    json patch = R"(
20        [
21          { "op": "replace", "path": "/baz", "value": "boo" },
22          { "op": "add", "path": "/hello", "value": ["world"] },
23          { "op": "remove", "path": "/foo"}
24        ]
25    )"_json;
26
27    // apply the patch
28    json patched_doc = doc.patch(patch);
29
30    // output original and patched document
31    std::cout << std::setw(4) << doc << "\n\n"
32              << std::setw(4) << patched_doc << std::endl;
33}
34