boost获取json文件所有节点
时间: 2023-12-24 13:04:35 浏览: 107
您可以使用boost::property_tree库来获取JSON文件的所有节点。以下是一个示例代码:
```
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
#include <iostream>
int main()
{
// 读取JSON文件
boost::property_tree::ptree root;
boost::property_tree::read_json("example.json", root);
// 遍历所有节点
for (auto& node : root)
{
// 输出节点名称和值
std::cout << "Node name: " << node.first << ", Node value: " << node.second.get_value<std::string>() << std::endl;
// 遍历子节点
for (auto& child : node.second)
{
// 输出子节点名称和值
std::cout << "Child node name: " << child.first << ", Child node value: " << child.second.get_value<std::string>() << std::endl;
}
}
return 0;
}
```
在上面的代码中,我们首先使用`boost::property_tree::read_json()`函数读取了一个名为“example.json”的JSON文件,并将其转换为一个`boost::property_tree::ptree`对象。然后,我们使用一个`for`循环遍历了所有节点,并输出了每个节点的名称和值。接下来,我们使用另一个`for`循环遍历了每个节点的子节点,并输出了子节点的名称和值。
请注意,上面的代码假定JSON文件中的所有值都是字符串,如果节点的值是其他类型,则需要使用适当的`get_value<>()`函数来获取它们。
阅读全文