2013-12-04 1 views
0

Фон: Я хочу представить глубокую иерархию с помощью JSON. I.e У задания есть узлы, узлы имеют процессоры, у процессоров есть петли и петли устройства, у которых есть устройства. Мои данные находятся в базе данных. Я использую шаблон посетителя, чтобы перезвонить VisitJob, VisitNode, VisitCPU при навигации, сначала глубину базы данных.json-spirit - добавление контента к объекту в arry

Я отслеживаю текущий родительский объект wObject, используя стек. Я добавил верхний уровень и подготовил массив для узлов. Добавлен JSON узла, после чего я получаю обратный вызов, чтобы добавить CPU этого узла.

Проблема заключается в следующем: я уже сделал push.back для объекта Node, но хочу добавить более вложенный контент. Содержимое ЦП не отображается в последней строке.

Должно ли быть возможно добавить больше контента к объекту (у меня есть его указатель) после его возврата к его родительскому?

+0

Да, что может быть. Но вполне возможно, что объект (граф) был скопирован. Без дополнительной информации мы не можем сказать. – sehe

ответ

0

Я предполагаю, что вы имеете в виду библиотеку json-spirit, которая находится здесь: https://github.com/cierelabs/json_spirit (которая основана на примерах Духа).

Вызов push_back вернет ссылку на объект json :: value в массиве. Затем вы можете продолжить изменение этого объекта (через ссылку).

json::value some_list; 

json::value my_object = json::construct(
    "{" 
    " \"foo\" : 42 ," 
    " \"bar\" : 498.5 ," 
    " \"bork\" : [null,23,false]" 
    "}" 
); 

json::value& object = some_list.push_back(my_object); 

object["sub"] = json::construct("[ {\"id\": 1}, {\"id\": 2} ]"); 

std::cout << some_list << std::endl; 

, что приведет к:

[{"bar":498.5, "bork":[null, 23, false], "foo":42, "sub":[{"id":1}, {"id":2}]}] 

 Смежные вопросы

  • Нет связанных вопросов^_^