この質問にboost::property_tree
示されている方法を使用して、から配列データを読み取ろうとしています。この例では、配列は最初に文字列として読み取られ、文字列ストリームに変換されてから、配列に読み込まれます。そのソリューションを実装しているときに、文字列が空になっていることに気付きました。
入力例(json):
"Object1"
{
"param1" : 10.0,
"initPos" :
{
"":1.0,
"":2.0,
"":5.0
},
"initVel" : [ 0.0, 0.0, 0.0 ]
}
これらの配列表記は両方とも、ブーストjsonパーサーによって配列として解釈されます。jsonライターを呼び出すと、配列データが出力に存在するため、データはプロパティツリーに存在すると確信しています。
これは失敗しているものの例です:
std::string paramName = "Object1.initPos";
tempParamString = _runTree.get<std::string>(paramName,"Not Found");
std::cout << "Value: " << tempParamString << std::endl;
paramName
は"Object1.param1"
文字列として「10.0」の出力を取得します。paramName
は"Object1.initPos"
空の文字列を取得します。paramName
はツリーに存在しないものである場合は、"Not Found"
が返されます。