gpt4 book ai didi

c++ - 如何使用 json11 库修改 json 对象?

转载 作者:行者123 更新时间:2023-12-01 14:44:44 24 4
gpt4 key购买 nike

我已经有 json11对象构建:

Json my_json = Json::object {
{ "key1", "value1" },
{ "key2", false },
{ "key3", Json::array { 1, 2, 3 } },
};

我想向 key3 数组添加一个新值,如下所示:
my_json["keys3"].push_back(4);

我怎样才能做到这一点?我看不到任何可以修改对象的东西(访问值的所有运算符都是 const!)

最佳答案

不幸的是,您似乎无法直接修改 Json 的实例。 .
它是一个围绕 JsonValue 的不透明包装器。那是无法访问的。

无论如何,请注意 Json::objectstd::map<std::string, Json> .您可以创建原始 Json::object 的拷贝如下:

Json::object json_obj = my_json.object_items();

然后是 key keys3包含 Json::array , 那只不过是一个 std::vector<Json> .
您可以按如下方式对其进行修改:
json_obj["keys3"].push_back(4);

最后你必须创建一个新的 Json来自您的 Json::object就这样:
Json another_json = json_obj;

相当昂贵的手术。
我怀疑正确的方法是逐步创建对象,并在过程的最后创建一个 Json 的实例。 .

关于c++ - 如何使用 json11 库修改 json 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41245347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com