gpt4 book ai didi

c++ - 为 json 数组中的所有 child boost ptree 节点

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:51:42 34 4
gpt4 key购买 nike

我一直在寻找这个问题的答案,但如果之前有人问过这个问题,我很抱歉找不到任何答案。我有以下 json 文件

{"GuiComponents": [
{
"GuiComponent":
{
"screen": "WindowMain",
"type": "class Robot",
"filename": "robot.mesh",
"blueprint": "Betplacement/Robot.json",
"layer": "0",
"position":
{
"x": "0",
"y": "0"
}
}
},
{
"GuiComponent":
{
"screen": "WindowTop",
"type": "class Robot",
"filename": "robot.mesh",
"blueprint": "Betplacement/Robot.json",
"layer": "0",
"position":
{
"x": "0",
"y": "0"
}
}
}
]
}

现在我想遍历 GuiComponents 中名为 GuiComponent 的所有子项,并将每个子项分配给一个 ptree 节点。这样我就可以简单地将一个 ptree 节点传递给任何想要获取特定 GuiComponent 数据的人,而无需看到所有其他子节点。我找不到使用 get_child 执行此操作的方法,因为它只会抛出“没有这样的节点 GuiComponent”异常。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

您的 GuiComponent 元素存储在数组的未命名元素中;当读取 JSON 数据时,Boost.PropertyTree 将 "translate" array elements into children of empty nodes .

您可以尝试以下方法:搜索空节点,然后使用 equal_range() 在每个节点内搜索元素 GuiComponent方法:

auto array_iter = m_tree.equal_range("");
for (auto i: array_iter) {
auto gui_iter = i->second.equal_range("GuiComponent");
for (auto gui_component: gui_iter) {
// ...
}
}

ptree 上的迭代器指向一个对,其中第一个元素是节点的名称,第二个元素是一个 ptree。

关于c++ - 为 json 数组中的所有 child boost ptree 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27484652/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com