diff.cpp 741 B

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