2
我想分析下述JSON並從中提取productionYear值發現了一些字
auto data = {
"cars" : [
{
"name" : "BMW",
"engine" : 3.0
},
{
"name" : "Citroen",
"engine" : 3.6
},
{
"name" : "Ferrari",
"engine" : 4.2
}
],
"productionYear" : 1999
}
後如何分析號碼和我有下列規則:
using boost::spirit::ascii::string;
using boost::spirit::omit;
using boost::spirit::qi::lit;
using boost::spirit::qi::char_;
boost::spirit::qi::rule<std::string::iterator, int()> production_;
production_ = omit[*(char_ - "productionYear") >>
lit('"') >> lit(' ') >> lit(':') >> lit(' ')] >> int_;
int year;
auto it = data.begin();
if (boost::spirit::qi::parse(it, data.end(), production_, year))
{
std::cout << "Parse finished with succeded status"
<< std::distance(data.begin(), it);
}
分析器失敗最後迭代器位置:0
有人可以告訴我我做錯了什麼?
'自動數據= { 「車」:...'是不是有效的JSON ,它也不是有效的C++。 – cdhowie