例如, 我正在使用以下代码构建 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。
关于c++ - 如何在现有的 json11 对象上附加属性值对(c++)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38683299/