2017-01-22 9 views
0

JSONを返す気象APIからデータを取得しようとしています。 リスト内のすべての項目は「ラベル」なしのノードと見なされますが、ここではリスト内に2つのノードが含まれています。 root.get<string>("weather.description")Node does not existというエラーが表示されるので、descriptionラベルにアクセスするにはどうすればよいですか?Boost :: ptree - リストに含まれるプロパティツリーノードにアクセスする

for (auto it: root.get_child("weather")) { 
    cout << it.first.data() << "+"; 
    cout << it.second.data() << endl; 
} 

weather.json:(何も返されません)私はを試してみました何

{ 
    "weather": [ 
     { 
      "id": "701", 
      "main": "Mist", 
      "description": "brume", 
      "icon": "50n" 
     }, 
     { 
      "id": "502", 
      "main": "Sun", 
      "description": "soleil", 
      "icon": "50b" 
     } 
    ] 
} 

答えて

0

は、このための回避策を発見します!私は天気が8つの別々のノードのリストだと思ったが、実際には天気の子どもの2人だ。このように、私は次のように個々のデータにアクセスすることができます。

返し
for (auto it: root.get_child("weather")) { 
    cout << it.second.get_child("description").data() << endl; 
} 

brume 
soleil 
関連する問題