怎么使用property_tree 生成json文件并代码示例
时间: 2023-06-05 10:08:33 浏览: 210
好的,关于使用 property_tree 生成 json 文件,可以参考以下代码示例:
```c++
#include <iostream>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
namespace pt = boost::property_tree;
int main()
{
pt::ptree json;
json.put("name", "John Doe");
json.put("age", 30);
pt::write_json("example.json", json); //将 ptree 内容写入 example.json 文件
return 0;
}
```
在这段代码中,我们通过 `boost::property_tree` 库创建了一个 `pt::ptree` 对象,并通过 `put` 函数向其中添加了两个键值对。之后,我们使用 `write_json` 函数将 `ptree` 对象的内容写入到指定的 json 文件(此处为 `example.json`)中。
需要注意的是,本例中的 json 文件中只包含两个键值对。如果需要添加更多字段,只需在 `ptree` 对象中添加更多数据即可。
如果你需要从 json 文件中读取数据,可以使用 `read_json` 函数来实现。与 `write_json` 类似,该函数将从指定的 json 文件中读取数据,然后将其存储到 `ptree` 对象中。以下是一个简单的示例:
```c++
#include <iostream>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
namespace pt = boost::property_tree;
int main()
{
pt::ptree json;
pt::read_json("example.json", json); //从 example.json 文件中读取数据
std::string name = json.get<std::string>("name");
int age = json.get<int>("age");
std::cout << "Name: " << name << std::endl;
std::cout << "Age: " << age << std::endl;
return 0;
}
```
在本例中,我们使用 `read_json` 函数将 `example.json` 文件中的数据读取到 `ptree` 对象中。之后,我们使用 `get` 函数从 `ptree` 中获取 `name` 和 `age` 两个字段的数据,并将其存储到相应的变量中。最后,我们将这些变量的值输出到控制台上。
希望这个例子能够回答你的问题。如果还有其他问题,请随时问我!
阅读全文