我是Boost和Json的新手。 它应该很简单,但是我找不到答案。
如何使用Boost读取C ++中字符串向量的值。
Json文件的内容例如:
summarize
最后,我想为每个关键字设置向量:
{
"keyword1": ["string1", "string2"],
"keyword2": ["string3", "string4"]
}
答案 0 :(得分:0)
在此问题中,您最好的选择是使用某种东西作为Reading JSON with Boost property_tree
如果需要简化,我强烈建议您使用https://github.com/nlohmann/json并使用json::parse
API。
答案 1 :(得分:0)
谢谢您的帮助。
此代码对我有用:
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',而仅添加boost库。