int LuaJsonObject::luaIteratorNext( lua_State *L ) { JsonObjectUserData *UserData = (JsonObjectUserData *)lua_touserdata( L, lua_upvalueindex( 1 ) ); if( UserData->mIterator != UserData->mJsonObject.end() ) { lua_pushfstring( L, "%s", UserData->mIterator.key().toLatin1().constData() ); QJsonValueRef ValRef = *UserData->mIterator; switch( ValRef.type() ) { case QJsonValue::Array: LuaJsonArray::pushjsonarray( L, ValRef.toArray() ); break; case QJsonValue::Bool: lua_pushboolean( L, ValRef.toBool() ); break; case QJsonValue::Double: lua_pushnumber( L, ValRef.toDouble() ); break; case QJsonValue::String: lua_pushfstring( L, "%s", ValRef.toString().toLatin1().constData() ); break; case QJsonValue::Object: LuaJsonObject::pushjsonobject( L, ValRef.toObject() ); break; case QJsonValue::Null: lua_pushnil( L ); break; case QJsonValue::Undefined: lua_pushnil( L ); break; } UserData->mIterator++; return( 2 ); } return( 0 ); }
void HttpServer::registerRouteFromJSON(QJsonValueRef& obj, HttpMethod method) { if(obj.isArray()) { QJsonArray array = obj.toArray(); auto item = array.begin(); while(item != array.end()) { if(item->isObject()) { auto route = item->toObject(); auto action = route["action"].toString().trimmed(); auto path = route["path"].toString().trimmed(); if(route["isActive"] != false && !path.isEmpty()) { this->registerRoute(method, action, path); } } ++item; } } }