【发布时间】:2021-04-13 11:23:34
【问题描述】:
我在 JsonCpp::Value 中有以下对象数组:
[{"foo": "bar", "baz": ["Hello", "World"]},
{"Hello": "99bottles", "baz": ["bar", "foo"]},
{"beer": "hello", "world": ["foo"]}.... ]
我必须迭代它们并交替它们(删除一些元素,添加另一个元素)。
我可以轻松地遍历 JsonArray:
for (Json::Value::ArrayIndex i = 0; i != array.size(); i++) {
doc[i] = Json::Value();
Json::Value result = array.get(i, Json::Value());
std::cout<<"-------------------"<<std::endl;
std::cout<<result.toStyledString()<<std::endl;
}
但是 array.get() 返回一个对象的副本。我将无法修改对象本身。我可以创建一个新数组并根据原始数组的值用新对象填充它,但这会非常昂贵。
是否可以通过“就地”JsonCpp 实现我的目标?并避免额外的内存开销?
【问题讨论】: