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