static void write_object( JsonIn &jsin, JsonOut &jsout, int depth, bool force_wrap ) { jsout.start_object( force_wrap ); jsin.start_object(); while( !jsin.end_object() ) { std::string name = jsin.get_member_name(); jsout.member( name ); bool override_wrap = false; if( name == "rows" || name == "blueprint" ) { // Introspect into the row, if it has more than one element, force it to wrap. int in_start_pos = jsin.tell(); bool ate_seperator = jsin.get_ate_separator(); { JsonArray arr = jsin.get_array(); if( arr.size() > 1 ) { override_wrap = true; } } jsin.seek( in_start_pos ); jsin.set_ate_separator( ate_seperator ); } format( jsin, jsout, depth, override_wrap ); } jsout.end_object(); }
static void write_object( JsonIn &jsin, JsonOut &jsout, int depth, bool force_wrap ) { jsout.start_object( force_wrap ); jsin.start_object(); while( !jsin.end_object() ) { std::string name = jsin.get_member_name(); jsout.member( name ); format( jsin, jsout, depth ); } jsout.end_object(); }