#include <json.hpp>

using json = nlohmann::json;

int main()
{
    // create several JSON values
    json array_1 = {1, 2, 3};
    json array_2 = {1, 2, 4};
    json object_1 = {{"A", "a"}, {"B", "b"}};
    json object_2 = {{"B", "b"}, {"A", "a"}};
    json number_1 = 17;
    json number_2 = 17.0000000000001L;
    json string_1 = "foo";
    json string_2 = "bar";

    // output values and comparisons
    std::cout << std::boolalpha;
    std::cout << array_1 << " == " << array_2 << " " << (array_1 < array_2) << '\n';
    std::cout << object_1 << " == " << object_2 << " " << (object_1 < object_2) << '\n';
    std::cout << number_1 << " == " << number_2 << " " << (number_1 < number_2) << '\n';
    std::cout << string_1 << " == " << string_2 << " " << (string_1 < string_2) << '\n';
}
