mirror of
https://github.com/nlohmann/json.git
synced 2026-10-22 14:08:13 +00:00
29 lines
1.3 KiB
C++
29 lines
1.3 KiB
C++
#include <iostream>
|
|
#include <nlohmann/json_view.hpp>
|
|
|
|
using json_document = nlohmann::json_document;
|
|
using ordered_json_document = nlohmann::ordered_json_document;
|
|
using json = nlohmann::json;
|
|
|
|
int main()
|
|
{
|
|
// assert, as a test would, that a received document differs from an
|
|
// unwanted shape -- without ever materializing it into a json value just
|
|
// to compare
|
|
const json_document received = json_document::parse(
|
|
R"({"status": "ok", "code": 200})");
|
|
const json unwanted = {{"status", "error"}, {"code", 500}};
|
|
std::cout << std::boolalpha << (received.root() != unwanted) << '\n';
|
|
|
|
// json (std::map) compares object members regardless of order ...
|
|
const json_document a = json_document::parse(R"({"a": 1, "b": 2})");
|
|
const json_document b = json_document::parse(R"({"b": 2, "a": 1})");
|
|
std::cout << (a.root() != b.root()) << '\n';
|
|
|
|
// ... but ordered_json (ordered_map) compares them in the order they
|
|
// appear, so the very same reordering is detected as a difference
|
|
const ordered_json_document oa = ordered_json_document::parse(R"({"a": 1, "b": 2})");
|
|
const ordered_json_document ob = ordered_json_document::parse(R"({"b": 2, "a": 1})");
|
|
std::cout << (oa.root() != ob.root()) << '\n';
|
|
}
|