c++ - 使用 Boost 在 C++ 中从 JSON 文件中读取字符串值的向量
问题描述
我是 Boost 和 Json 的新手。它应该很简单,但我找不到答案。
如何使用 Boost 在 C++ 中读取作为字符串向量的值。
例如 Json 文件的内容:
{
"keyword1": ["string1", "string2"],
"keyword2": ["string3", "string4"]
}
最后,我想为每个关键字提供向量:
vector<string> keyword1;
vector<string> keyword2;
解决方案
感谢您的帮助。
这段代码对我有用:
boost::property_tree::ptree pt;
boost::property_tree::read_json("test.json", pt);
BOOST_FOREACH(boost::property_tree::ptree::value_type &v, pt.get_child("entry_name"))
{
std::cout << v.second.data() << std::endl;
}
'test.json' 文件的内容:
{
"entry_name": ["string1", "string2", "string3"]
}
代码输出:
string1
string2
string3
我将补充一点,我尝试了对多个字符串值的不同解析,包括:
std::vector<std::string> vec = pt.get<std::vector<std::string>> ("entry_name");
那是错误的。
我不想添加像 'rapidJson' 或 'nlohmann' 这样的新类/库,只需要提升库。
推荐阅读
- java - 在 Java 中获取接口的类型
- python - 构建我的 Python 包以便导入语句正常工作
- python - 如何将元组中的所有值添加到字典中?
- react-navigation - 在 React Navigation 中使用 iOS 13 样式的模式时如何修改“深”背景?
- laravel - 同步不同数据库表的最佳方法
- c - 在文件范围内进行可变修改
- javascript - 为 Angular 包扩展缓存 TTL
- firebase - Nuxt generate 和 firebase 给出计时器警告
- java - 将从图库中选择或从相机捕获的图像添加到另一个活动的网格视图中
- json - React Js axios 在实际数据之前返回空 div