Skip to content

Json

charted::Json is an adapter over nlohmann::json.

Basic Set/Get

charted::Json json;
json.Set("name", "Charted");
json.Set("version", 1);

std::string name = json.Get<std::string>("name", "unknown");
int version = json.Get<int>("version", 0);

Route-Based Access

json.Set(charted::route("A.B[1].C"), 7);
int v1 = json.Get<int>(charted::route("A.B[1].C"), -1);
int v2 = json.Get<int>(charted::route<"A.B[1].C">(), -1);

Parse and TryGet

auto parsed = charted::Json::Parse(R"({"pi":3.14})");
if (parsed.has_value())
{
    auto pi = parsed->TryGet<double>("pi");
}