#include #include #include void printThing( Bu::Json &j, int iDepth=0 ) { for(int i = 0; i < iDepth; i++ ) Bu::print(" "); switch( j.getType() ) { case Bu::Json::Invalid: Bu::println(""); break; case Bu::Json::Object: Bu::println(""); { Bu::UtfStringList lKeys = j.getKeys(); for( Bu::UtfStringList::iterator i = lKeys.begin(); i; i++ ) { for(int k = 0; k < iDepth+1; k++ ) Bu::print(" "); Bu::println("'%1':").arg( *i ); printThing( j[*i], iDepth+2 ); } } break; case Bu::Json::Array: Bu::println(""); for( int i = 0; i < j.getSize(); i++ ) { printThing( j[i], iDepth+1 ); } break; case Bu::Json::String: Bu::println("'%1'").arg( j.getString() ); break; case Bu::Json::Number: Bu::println("%1").arg( j.getNumber() ); break; case Bu::Json::Boolean: Bu::println("%1").arg( j.getBoolean() ); break; case Bu::Json::Null: Bu::println(""); break; } } int main( int argc, char *argv[] ) { Bu::Json j; j.parse( Bu::File( argv[1], Bu::File::Read ).readAll() ); printThing( j ); return 0; }