boost :: ptree encontrar? ou como acessar matrizes profundas? C ++

Há muito tempo que estou tentando acessar uma ptree json_reader a partir da biblioteca de impulso.

Eu tenho um arquivo json que é encapsulado com muita frequência: (pseudo-json :)

"Foo": {
  "nameofFoo:"foofoo"
  "Bar": [{
    "BarFoo": 
      { BarFooDeep: { 
           BarFooDeepDeep: { 
            "BarFooValue1": 123 
            "BarFooValue2" : 456
          }
        }
      }
     "FooBar": [ {
        "FooBarDeep" :[ {
           FooBarDeepDeep:[ {
              FooBarValue1: "ineedthis"
              FooBarValue2: "andthis"
              } ]
           FooBarDeepDeep1:[ {
              FooBarValue1: "ineedthis"
              FooBarValue2: "andthis"
              } ]
        "FooBarDeep" :[ {
           FooBarDeepDeep2:[ {
              FooBarValue1: "ineedthis"
              FooBarValue2: "andthis"
              } ]
           FooBarDeepDeep3:[ {
              FooBarValue1: "ineedthis"
              FooBarValue2: "andthis"
              } ]
and so on .... won t complete this now...

Agora só preciso obter FooBarValue1 e FooBarValue2 de todos os FooBar.

Eu sei que o ptree coloca matrizes com childs vazios ("")

Eu posso acessar todos os membros por iteração sobre todas as crianças de forma recursiva.

Mas não há uma maneira melhor de acessar valores especiais?

como o ptree encontra trabalhos? eu sempre recebo erros de compilador ...

ptree jsonPT;
read_json( JSON_PATH, jsonPT);
ptree::const_iterator myIT = jsonPT.find("FooBarValue1");
double mlat = boost::lexical_cast<int>(myIT->second.data());

erro: conversão de 'boost :: property_tree :: basic_ptree, std :: basic_string> :: assoc_iterator' para tipo não escalar 'boost :: property_tree :: basic_ptree, std :: basic_string> :: const_iterator' solicitou ptree :: const_iterator myIT = jsonPT.find ("FooBarValue1");

Alguém pode me dar uma dica útil sobre como obter acesso a este ptree?!?

questionAnswers(2)

yourAnswerToTheQuestion