У меня есть строка 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;
}