本文整理汇总了C++中json::value::setobject方法的典型用法代码示例。如果您正苦于以下问题:C++ value::setobject方法的具体用法?C++ value::setobject怎么用?C++ value::setobject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类json::value
的用法示例。
在下文中一共展示了value::setobject方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
/*!
* \brief Reads an object from the input stream into \p rv
*/
bool parser_UTF8::readobject(JSON::value &rv){
rv.setobject();
if (*bfr.ptr != '{') return false;
++bfr.ptr;
bool first=true;
while (1){
astr curname;
JSON::value curval;
skipWS();
if (bfr.ptr >= bfr.end){
adderror(5);
return false;
}
if (*bfr.ptr == '}'){
++bfr.ptr;
return true;
}else if (*bfr.ptr != ','){
if (first!=true){adderror(8);}
}else{
++bfr.ptr;
skipWS();
if (bfr.ptr >= bfr.end){
adderror(5);
return false;
}
if (*bfr.ptr == '}'){
++bfr.ptr;
return true;
}
}
if (*bfr.ptr == ':'){
adderror(6);
createrandomname(curname);
}else if (*bfr.ptr == '"'){
readstring(curname);
if (bfr.ptr == bfr.end){
adderror(5); return false;
}
}else{
readunquotedstring(curname);
//adderror(11); // While this is _technically_ an error, we don't want people to fail because of it
if (bfr.ptr == bfr.end){
adderror(5); return false;
}
}
if (curname == A("")){
adderror(7);
createrandomname(curname);
}
skipWS();
if (bfr.ptr == bfr.end){
adderror(5); return false;
}
if (*bfr.ptr != ':'){
adderror(6);
if (*bfr.ptr == '}'){ //this should allow recovery in some situations.
++bfr.ptr;
}
return false;
}
++bfr.ptr;
skipWS();
if (bfr.ptr == bfr.end){
adderror(5); return false;
}
getvalue(curval);
rv.addvalue(curname.c_str(),curval);
first=false;
}
return true;
}