在添加父级的Json :: Value之后追加子级的Json :: Value不会更改父级数据,有什么建议吗?

时间:2018-11-22 13:02:41

标签: c++ jsoncpp

我正在从树数据构造json,但是当我从node_level_1添加了node_level_2之后又从node_level_2添加了node_level_3时,node_level_2没有关于node_level_3的信息。 这是我的代码。

node_level_1 = new Json::Value();
(*node_level_1)["data"] = first_value;

if (some_other_string != "")
{
    node_level_2 = new Json::Value();

    (*node_level_2)["data"] = some_other_string ;
    (*node_level_1)["child"].append(*node_level_2);
}

if (another_string!= "")
{
    node_level_3 = new Json::Value();

    (*node_level_3) ["data"] = another_string;
    (*node_level_2) ["child"].append(*node_level_3 );
}

我猜问题是“ Json :: Value.append()函数”仅复制其数据,而不复制指针或引用。因此,如果我更改node_level_2的数据,则不会影响以前添加的node_level_2。

我该如何解决这个问题? 我是否应该遍历树的所有底部节点(第3级),并构造父树节点(第2级),最后将所有父级添加到根节点(第1级)?这是使用JsonCpp的唯一解决方案吗?

0 个答案:

没有答案