这应该很简单(我只是在学习提升,所以我错过了一些东西)
我已经使用 json_read 读取了一些简单的 JSON,现在有了一个 ptree。网络上的所有示例都显示使用 ptree.get("entry_name") 来获取条目。我想做的就是:
ptree pt;
read_json(ss,pt);
BOOST_FOREACH(ptree::value_type &v, pt)
{
std::cout << v.{entry_name} << v.{value}
}
即循环遍历 ptree 并写出每个名称(即您放入 pt.get() 中的内容)及其相应的值。
抱歉,如果这很简单
Ross
我正在寻找同样的东西,但在任何地方都找不到答案。事实证明确实非常简单:
ptree pt;
/* load/fill pt */
for(iterator iter = pt.begin(); iter != pt.end(); iter++)
{
std::cout << iter->first << "," << iter->second.data() << std::endl;
}
iter->first
是条目名称,并且iter->second.data()
是第一层的入口值。 (然后您可以重复使用iter->second.begin()
/end()
以获得更深的层次。)
此外,如果此迭代中的一个这样的节点不是终端节点并且本身是一个 ptree,则可以从此迭代器本身将其作为 ptree 获取:ptree subPt = iter->second.get_child("nodeName");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)