本文整理汇总了C++中JsonObject::finish方法的典型用法代码示例。如果您正苦于以下问题:C++ JsonObject::finish方法的具体用法?C++ JsonObject::finish怎么用?C++ JsonObject::finish使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JsonObject
的用法示例。
在下文中一共展示了JsonObject::finish方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: load_all_from_json
void DynamicDataLoader::load_all_from_json(JsonIn &jsin)
{
char ch;
jsin.eat_whitespace();
// examine first non-whitespace char
ch = jsin.peek();
if (ch == '{') {
// find type and dispatch single object
JsonObject jo = jsin.get_object();
load_object(jo);
jo.finish();
// if there's anything else in the file, it's an error.
jsin.eat_whitespace();
if (jsin.good()) {
jsin.error( string_format( "expected single-object file but found '%c'", jsin.peek() ) );
}
} else if (ch == '[') {
jsin.start_array();
// find type and dispatch each object until array close
while (!jsin.end_array()) {
jsin.eat_whitespace();
ch = jsin.peek();
if (ch != '{') {
jsin.error( string_format( "expected array of objects but found '%c', not '{'", ch ) );
}
JsonObject jo = jsin.get_object();
load_object(jo);
jo.finish();
}
} else {
// not an object or an array?
jsin.error( string_format( "expected object or array, but found '%c'", ch ) );
}
}
示例2: load_all_from_json
void DynamicDataLoader::load_all_from_json( JsonIn &jsin, const std::string &src, loading_ui &,
const std::string &base_path, const std::string &full_path )
{
if( jsin.test_object() ) {
// find type and dispatch single object
JsonObject jo = jsin.get_object();
load_object( jo, src, base_path, full_path );
jo.finish();
// if there's anything else in the file, it's an error.
jsin.eat_whitespace();
if( jsin.good() ) {
jsin.error( string_format( "expected single-object file but found '%c'", jsin.peek() ) );
}
} else if( jsin.test_array() ) {
jsin.start_array();
// find type and dispatch each object until array close
while( !jsin.end_array() ) {
JsonObject jo = jsin.get_object();
load_object( jo, src, base_path, full_path );
jo.finish();
}
} else {
// not an object or an array?
jsin.error( "expected object or array" );
}
}
示例3: load_all_from_json
void DynamicDataLoader::load_all_from_json(JsonIn &jsin)
{
char ch;
std::string type = "";
jsin.eat_whitespace();
// examine first non-whitespace char
ch = jsin.peek();
if (ch == '{') {
// find type and dispatch single object
JsonObject jo = jsin.get_object();
load_object(jo);
jo.finish();
// if there's anything else in the file, it's an error.
jsin.eat_whitespace();
if (jsin.good()) {
std::stringstream err;
err << jsin.line_number() << ": ";
err << "expected single-object file but found '";
err << jsin.peek() << "'";
throw err.str();
}
} else if (ch == '[') {
jsin.start_array();
// find type and dispatch each object until array close
while (!jsin.end_array()) {
jsin.eat_whitespace();
ch = jsin.peek();
if (ch != '{') {
std::stringstream err;
err << jsin.line_number() << ": ";
err << "expected array of objects but found '";
err << ch << "', not '{'";
throw err.str();
}
JsonObject jo = jsin.get_object();
load_object(jo);
jo.finish();
}
} else {
// not an object or an array?
std::stringstream err;
err << jsin.line_number() << ": ";
err << "expected object or array, but found '" << ch << "'";
throw err.str();
}
}
示例4: curses_start_color
int curses_start_color(void)
{
colorpairs = new pairs[100];
//Load the console colors from colors.json
std::ifstream colorfile("data/raw/colors.json", std::ifstream::in | std::ifstream::binary);
try{
JsonIn jsin(colorfile);
char ch;
// Manually load the colordef object because the json handler isn't loaded yet.
jsin.eat_whitespace();
ch = jsin.peek();
if( ch == '[' ) {
jsin.start_array();
// find type and dispatch each object until array close
while (!jsin.end_array()) {
jsin.eat_whitespace();
char ch = jsin.peek();
if (ch != '{') {
std::stringstream err;
err << jsin.line_number() << ": ";
err << "expected array of objects but found '";
err << ch << "', not '{'";
throw err.str();
}
JsonObject jo = jsin.get_object();
load_colors(jo);
jo.finish();
}
} else {
// not an array?
std::stringstream err;
err << jsin.line_number() << ": ";
err << "expected object or array, but found '" << ch << "'";
throw err.str();
}
}
catch(std::string e){
throw "data/raw/colors.json: " + e;
}
if(consolecolors.empty())return 0;
windowsPalette[0] = BGR(ccolor("BLACK"));
windowsPalette[1] = BGR(ccolor("RED"));
windowsPalette[2] = BGR(ccolor("GREEN"));
windowsPalette[3] = BGR(ccolor("BROWN"));
windowsPalette[4] = BGR(ccolor("BLUE"));
windowsPalette[5] = BGR(ccolor("MAGENTA"));
windowsPalette[6] = BGR(ccolor("CYAN"));
windowsPalette[7] = BGR(ccolor("GRAY"));
windowsPalette[8] = BGR(ccolor("DGRAY"));
windowsPalette[9] = BGR(ccolor("LRED"));
windowsPalette[10] = BGR(ccolor("LGREEN"));
windowsPalette[11] = BGR(ccolor("YELLOW"));
windowsPalette[12] = BGR(ccolor("LBLUE"));
windowsPalette[13] = BGR(ccolor("LMAGENTA"));
windowsPalette[14] = BGR(ccolor("LCYAN"));
windowsPalette[15] = BGR(ccolor("WHITE"));
return 0;
}
示例5: load_mod_info
void mod_manager::load_mod_info(std::string info_file_path)
{
// info_file_path is the fully qualified path to the information file for this mod
std::ifstream infile(info_file_path.c_str(), std::ifstream::in | std::ifstream::binary);
if (!infile) {
// fail silently?
return;
}
std::istringstream iss(
std::string(
(std::istreambuf_iterator<char>(infile)),
std::istreambuf_iterator<char>()
)
);
infile.close();
const std::string main_path = info_file_path.substr(0, info_file_path.find_last_of("/\\"));
try {
JsonIn jsin(iss);
jsin.eat_whitespace();
char ch = jsin.peek();
if (ch == '{') {
// find type and dispatch single object
JsonObject jo = jsin.get_object();
load_modfile(jo, main_path);
jo.finish();
} else if (ch == '[') {
jsin.start_array();
// find type and dispatch each object until array close
while (!jsin.end_array()) {
jsin.eat_whitespace();
JsonObject jo = jsin.get_object();
load_modfile(jo, main_path);
jo.finish();
}
} else {
// not an object or an array?
std::stringstream err;
err << jsin.line_number() << ": ";
err << "expected object or array, but found '" << ch << "'";
throw err.str();
}
} catch(std::string e) {
debugmsg("%s", e.c_str());
}
}
示例6: curses_start_color
int curses_start_color(void)
{
//TODO: this should be reviewed in the future.
colorpairs = new pairs[100];
windowsPalette = new RGBQUAD[16];
//Load the console colors from colors.json
std::ifstream colorfile(FILENAMES["colors"].c_str(), std::ifstream::in | std::ifstream::binary);
try{
JsonIn jsin(colorfile);
char ch;
// Manually load the colordef object because the json handler isn't loaded yet.
jsin.eat_whitespace();
ch = jsin.peek();
if( ch == '[' ) {
jsin.start_array();
// find type and dispatch each object until array close
while (!jsin.end_array()) {
jsin.eat_whitespace();
char ch = jsin.peek();
if (ch != '{') {
jsin.error( string_format( "expected array of objects but found '%c', not '{'", ch ) );
}
JsonObject jo = jsin.get_object();
load_colors(jo);
jo.finish();
}
} else {
// not an array?
jsin.error( string_format( "expected object or array, but found '%c'", ch ) );
}
} catch( const JsonError &err ){
throw std::runtime_error( FILENAMES["colors"] + ": " + err.what() );
}
if(consolecolors.empty())return SetDIBColorTable(backbuffer, 0, 16, windowsPalette);
windowsPalette[0] = BGR(ccolor("BLACK"));
windowsPalette[1] = BGR(ccolor("RED"));
windowsPalette[2] = BGR(ccolor("GREEN"));
windowsPalette[3] = BGR(ccolor("BROWN"));
windowsPalette[4] = BGR(ccolor("BLUE"));
windowsPalette[5] = BGR(ccolor("MAGENTA"));
windowsPalette[6] = BGR(ccolor("CYAN"));
windowsPalette[7] = BGR(ccolor("GRAY"));
windowsPalette[8] = BGR(ccolor("DGRAY"));
windowsPalette[9] = BGR(ccolor("LRED"));
windowsPalette[10] = BGR(ccolor("LGREEN"));
windowsPalette[11] = BGR(ccolor("YELLOW"));
windowsPalette[12] = BGR(ccolor("LBLUE"));
windowsPalette[13] = BGR(ccolor("LMAGENTA"));
windowsPalette[14] = BGR(ccolor("LCYAN"));
windowsPalette[15] = BGR(ccolor("WHITE"));
return SetDIBColorTable(backbuffer, 0, 16, windowsPalette);
}
示例7: load_mod_info
void mod_manager::load_mod_info(std::string info_file_path)
{
const std::string main_path = info_file_path.substr(0, info_file_path.find_last_of("/\\"));
read_from_file_optional_json( info_file_path, [&]( JsonIn &jsin ) {
if( jsin.test_object() ) {
// find type and dispatch single object
JsonObject jo = jsin.get_object();
load_modfile(jo, main_path);
jo.finish();
} else if( jsin.test_array() ) {
jsin.start_array();
// find type and dispatch each object until array close
while (!jsin.end_array()) {
JsonObject jo = jsin.get_object();
load_modfile(jo, main_path);
jo.finish();
}
} else {
// not an object or an array?
jsin.error( "expected array or object" );
}
} );
}