如何在现有的json11对象(c ++)上追加属性 - 值对?

时间:2016-07-31 11:04:30

标签: c++ json

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

1 个答案:

答案 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。