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

标签 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 对象? 这样我就可以构建一个基础对象,然后根据需要附加必要的属性。

最佳答案

是的,这是可能的。

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/

相关文章:

c++ - 为什么 llvm::Module 存储在 unique_ptr 中?

c++ - C++文件读取错误

c++ - 如何禁用基于类模板参数的成员函数?

json - Swift JSON 从数组解析开始

java - 当键是数字时解析 json 时出现解析错误

c++ - COM Interop - 找不到成员

c++ - 河内线性塔

java - okhttp 不需要的表单数据转义

javascript - angularjs JSON对象过滤器选择选项

c - 不属于的随机字节,SSL_read