9
votes

Boost: juste itérer sur des éléments d'un pigee

Cela devrait être simple (j'apprends que j'apprends simplement boost, alors je manque quelque chose)

J'ai lu quelque chose de JSON simple à l'aide de JSON_Read et j'ai maintenant une pree. Tous les exemples de l'émission Web à l'aide de ptree.get ("Entry_name") pour obtenir une entrée. Tout ce que je veux faire, c'est quelque chose comme: xxx

i.e. Boucle à travers le ptree et écrivez chaque nom (c'est-à-dire ce que vous avez mis dans pt.get ()) et sa valeur correspondante.

désolé si c'est simple

ross


0 commentaires

5 Réponses :



17
votes

Je cherchais la même chose et je n'ai pas trouvé la réponse nulle part. Il s'est avéré assez simple: xxx

iter-> premier est le nom d'entrée et iter-> second.data () est la valeur d'entrée du premier niveau. (Vous pouvez ensuite reprocher avec iter-> second.begin () / fin () pour des niveaux plus profonds.)

En outre, si un Un tel noeud de cette itération n'est pas un nœud de terminal et est lui-même un ptree, vous pouvez l'obtenir comme PTREE de cet itérateur lui-même: ptree subpt = iter-> second.get_child ("nodename");



1
votes

Voici un excellent exemple de la façon d'itération d'un ptree en utilisant boost_foreach http://akrzemi1.wordpress.com/2011/07/ 13 / analyse-xml-with-boost /

Pour un accès direct à l'aide des fonctions «Obtenir» normales, regardez l'exemple de Boost: http://www.boost.org/doc/libs /1_51_0/doc/html/boost_propertytree/Tutorial.html

La page de documentation est située ici: http://www.boost.org/doc /Libs/1_51_0/doc/html/boost/property_tree/basic_ptree.html Je sais que ce n'est pas très bien documenté mais c'est utile.


0 commentaires

0
votes

Cet exemple iTère sur un simple objet JSON et met ses valeurs dans un vecteur. xxx


0 commentaires

1
votes

0 commentaires