Добавление дочернего Json :: Value после добавления родительского Json :: Value не меняет родительские данные, есть предложения? - PullRequest
0 голосов
/ 22 ноября 2018

Я создаю json из данных дерева, но когда я добавляю node_level_3 из node_level_2 после добавления node_level_2 из node_level_1, 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?

...