例如, 我正在使用以下代码构建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对象? 这样我就可以构建一个基础对象,然后根据需要附加必要的属性。
答案 0 :(得分:3)
是的,这是可能的。
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。