使用Boost在C ++中从JSON文件读取字符串值的向量

时间:2019-01-14 04:31:26

标签: c++ json boost

我是Boost和Json的新手。 它应该很简单,但是我找不到答案。

如何使用Boost读取C ++中字符串向量的值。

Json文件的内容例如:

summarize

最后,我想为每个关键字设置向量:

{  
"keyword1": ["string1", "string2"],  
"keyword2": ["string3", "string4"] 
}

2 个答案:

答案 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库。