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 ); }