Boost::ptree - 访问列表中包含的 属性 树节点
Boost::ptree - Accessing a property tree node contained in a list
我正在尝试从 API returns 和 JSON 中获取数据。
我读到列表中的每个项目都被视为没有 "label" 的节点,但是,在这里,列表内部包含两个节点。我如何访问 description
标签,因为 root.get<string>("weather.description")
会引发 Node does not exist
错误?
我试过的(什么也没返回):
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"
}
]
}
找到解决方法!我以为 weather 是一个包含 8 个独立节点的列表,但它实际上是 weather 的两个子节点。这样,我可以通过以下方式访问他们的个人数据:
for (auto it: root.get_child("weather")) {
cout << it.second.get_child("description").data() << endl;
}
哪个returns:
brume
soleil
我正在尝试从 API returns 和 JSON 中获取数据。
我读到列表中的每个项目都被视为没有 "label" 的节点,但是,在这里,列表内部包含两个节点。我如何访问 description
标签,因为 root.get<string>("weather.description")
会引发 Node does not exist
错误?
我试过的(什么也没返回):
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"
}
]
}
找到解决方法!我以为 weather 是一个包含 8 个独立节点的列表,但它实际上是 weather 的两个子节点。这样,我可以通过以下方式访问他们的个人数据:
for (auto it: root.get_child("weather")) {
cout << it.second.get_child("description").data() << endl;
}
哪个returns:
brume
soleil