例如,
我正在使用以下代码构建json消息:
json11::Json my_json = json11::Json::object{
{ "key_val1", val1},
{ "key_val2", val2},
{ "key_val3", val3},
{ "key_val4", val4 }
};
std::string message = my_json.dump();
但是,如果我想让此json11对象根据某些条件包含不同的属性值对,则必须重复相同的代码多次。
有什么方法可以将属性值对附加到现有的json11对象上吗?
这样我就可以构建基础对象,然后根据需要添加必要的属性。
最佳答案
是的,有可能。
json11::Json::object my_json = json11::Json::object{
{ "key_val1", val1},
{ "key_val2", val2},
{ "key_val3", val3},
{ "key_val4", val4 }
};
my_json["newattribute1"] = "newValue1";
my_json["newattribute2"] = 2;
json11::Json json_final = json11::Json{ my_json };
std::string message = json_final .dump();
在您的情况下,my_json是json11::Json的实例。在我的情况下,my_json是json11::Json::object的实例。
json11::Json::object最初是std::map。