Das sollte einfach sein (ich lerne nur Boost, damit mir etwas fehlt)
Ich habe ein paar einfache JSON mit json_read eingelesen und habe jetzt einen ptree. Alle Beispiele im Web zeigen mit ptree.get ("entry_name") einen Eintrag an. Alles was ich tun möchte ist etwas wie:
%Vor%d. Schleife durch den ptree und schreibe jeden Namen (d. h. was du in pt.get () geschrieben hast) und es ist der entsprechende Wert.
Tut mir leid, wenn das einfach ist
Ross
Ich habe dasselbe gesucht und konnte die Antwort nirgends finden. Es stellte sich in der Tat als ziemlich einfach heraus:
%Vor%iter- & gt; first ist der Eintragsname und iter- & gt; second.data () ist der Eintragswert der ersten Ebene. (Sie können dann mit iter- & gt; second.begin () / end () für tiefere Ebenen wiederholen.)
Wenn außerdem ein solcher Knoten in dieser Iteration kein Endknoten ist und selbst ein ptree ist, können Sie das als ptree von diesem Iterator selbst erhalten: ptree subPt = iter- & gt; second.get_child ("Knotenname");
Danke, dass Sie mir eine Anleitung gegeben haben, um es zu verstehen, ptree sieht jetzt sehr intuitiv aus wie andere C ++ stl-Funktionen.
Ich habe auch Probleme mit ptree, aber vielleicht kann das helfen: Sehen Sie sich boost's ptree-Kurzanleitung
anv. {Eintragsname}
wäre ich v.erstes
und
v. {Wert}
v.second.data ()
Würde das funktionieren?
Hier ist ein großartiges Beispiel, wie man einen ptree mit BOOST_FOREACH iteriert Ссылка
für direkten Zugriff mit den normalen "get" -Funktionen schauen Sie sich das Beispiel von boost an: Ссылка
Die Dokumentationsseite befindet sich hier: Ссылка Ich weiß es ist nicht sehr gut dokumentiert, aber es ist hilfreich.
Tags und Links loops boost-propertytree