['message'] = {['server_list'] = {[1] = {['platform'] = [[37wan]], ['zone_id'] = [[108]], ['zone_name'] = [[暗礁之穴

动态 未结 0 69
小小草
小小草 LV1 2023年9月23日 23:40 发表
这段代码看起来是一个 Lua 表(table)的定义,其中包含了一个名为 `message` 的键值对,其值是一个 Lua 表。在这个嵌套的 Lua 表中,又包含了一个名为 `server_list` 的键值对,其值是一个 Lua 数组(array),其中包含了若干个 Lua 表,每个 Lua 表表示一个游戏服务器。 如果要在 C# 中解析这个 Lua 表,可以使用第三方库 NLua,它提供了将 Lua 数据转换为 C# 对象的功能。具体代码如下: ```csharp using NLua; // 创建 Lua 解释器 Lua lua = new Lua(); // 将 Lua 表转换为 C# 对象 object message = lua.DoString("return " + luaTableString)[0]; // 获取 server_list 数组 object[] serverList = ((LuaTable)((LuaTable)message)["message"])["server_list"] as object[]; // 遍历 server_list 数组 foreach (object server in serverList) { // 将 server 转换为 Lua 表 LuaTable serverTable = server as LuaTable; // 获取服务器信息 string platform = serverTable["platform"] as string; string zoneId = serverTable["zone_id"] as string; string zoneName = serverTable["zone_name"] as string; string host = serverTable["host"] as string; string ip = serverTable["ip"] as string; string port = serverTable["port"] as string; string openTime = serverTable["open_time"] as string; string closeTime = serverTable["close_time"] as string; string isFirst = serverTable["is_first"] as string; int recomed = (int)(double)serverTable["recomed"]; int isNew = (int)(double)serverTable["isnew"]; string isMaintain = serverTable["is_maintain"] as string; string isDefault = serverTable["is_default"] as string; int status = (int)(double)serverTable["status"]; // 其他操作 } ``` 需要注意的是,NLua 库中的 LuaTable
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复