1c5f01b2fSopenharmony_ci#include <iostream> 2c5f01b2fSopenharmony_ci#include <iomanip> 3c5f01b2fSopenharmony_ci#include <nlohmann/json.hpp> 4c5f01b2fSopenharmony_ci 5c5f01b2fSopenharmony_ciusing json = nlohmann::json; 6c5f01b2fSopenharmony_ciusing namespace nlohmann::literals; 7c5f01b2fSopenharmony_ci 8c5f01b2fSopenharmony_ciint main() 9c5f01b2fSopenharmony_ci{ 10c5f01b2fSopenharmony_ci // the source document 11c5f01b2fSopenharmony_ci json source = R"( 12c5f01b2fSopenharmony_ci { 13c5f01b2fSopenharmony_ci "baz": "qux", 14c5f01b2fSopenharmony_ci "foo": "bar" 15c5f01b2fSopenharmony_ci } 16c5f01b2fSopenharmony_ci )"_json; 17c5f01b2fSopenharmony_ci 18c5f01b2fSopenharmony_ci // the target document 19c5f01b2fSopenharmony_ci json target = R"( 20c5f01b2fSopenharmony_ci { 21c5f01b2fSopenharmony_ci "baz": "boo", 22c5f01b2fSopenharmony_ci "hello": [ 23c5f01b2fSopenharmony_ci "world" 24c5f01b2fSopenharmony_ci ] 25c5f01b2fSopenharmony_ci } 26c5f01b2fSopenharmony_ci )"_json; 27c5f01b2fSopenharmony_ci 28c5f01b2fSopenharmony_ci // create the patch 29c5f01b2fSopenharmony_ci json patch = json::diff(source, target); 30c5f01b2fSopenharmony_ci 31c5f01b2fSopenharmony_ci // roundtrip 32c5f01b2fSopenharmony_ci json patched_source = source.patch(patch); 33c5f01b2fSopenharmony_ci 34c5f01b2fSopenharmony_ci // output patch and roundtrip result 35c5f01b2fSopenharmony_ci std::cout << std::setw(4) << patch << "\n\n" 36c5f01b2fSopenharmony_ci << std::setw(4) << patched_source << std::endl; 37c5f01b2fSopenharmony_ci} 38