首页 > 解决方案 > 使用 Boost 在 C++ 中从 JSON 文件中读取字符串值的向量

问题描述

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

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

例如 Json 文件的内容:

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

最后,我想为每个关键字提供向量:

vector<string> keyword1;
vector<string> keyword2;

标签: c++jsonboost

解决方案


感谢您的帮助。

这段代码对我有用:

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' 这样的新类/库,只需要提升库。


推荐阅读