【发布时间】:2018-05-18 08:48:58
【问题描述】:
我有一个如下所示的 json 字符串:
[
"some text",
648547,
94.0,
111.0267520223,
10
]
所以我需要为每个值分配一个变量,例如:
std::string value1 = "some text";
int value2 = 648547;
float value3 = 94.0;
float value4 = 111.0267520223;
int value5 = 10;
为了读取 JSON,使用 Boost,我正在做这样的事情
std::stringstream jsonResponse;
boost::property_tree::ptree pt;
jsonResponse << "[\"some text\", 648547, 94.0, 111.0267520223, 10]";
std::istringstream is(jsonResponse);
boost::property_tree::read_json(is, pt);
但我不知道如何从属性树中读取数组值。
有人知道怎么做吗?
提前致谢!
这是我迭代无命名数组的解决方案:
boost::property_tree::basic_ptree<std::string,std::string>::const_iterator iter = pt.begin(),iterEnd = pt.end();
for(;iter != iterEnd;++iter)
{
//->first; // Key. Array elements have no names
//->second; // The object at each step
std::cout << "=> " << iter->second.get_value<std::string>() << std::endl;
}
【问题讨论】:
标签: c++ arrays json boost boost-propertytree