Lua嵌套表,table.insert函数

时间:2016-03-15 19:24:51

标签: lua

我开始学习lua,现在我正在尝试处理嵌套表。

基本上我想创建一种使用json与lua交互的本地“数据库”(我发现这是存储我的值的最好的东西)......

我应该做的是扫描聊天组内的所有成员(我正在使用非官方的电报api)并将一些值存储在表中。我能够检索所需的所有数据,所以这是在main函数中声明的结构:

local dbs = load_data("./data/database.json")

dbs[tostring(msg.to.id)] = {
        gr_name = {},
        timestamp = "",
        user = {               --user changes into user ids
            us_name = {},
            us_nickname = {},
            us_role = ""
        },
    }

其中msg.to.id包含有效数字。这就是我试图做的事情:

dbs[tostring(id)]['users'][tostring(v.peer_id)]['us_nickname'] = v.username

这个可行但是这个:

dbs[tostring(id)]['users'][tostring(v.peer_id)] = table.insert(us_name,v.print_name)

(id是一个正确的数字,与第一个字段匹配,与v.peer_id和v.print_name之类的所有值相同,所以这些不是问题)

给出错误“table expected”...我很确定我完全不知道如何在像我这样的表中插入元素。

你们中的任何人都可以这么善意帮助我吗?我希望能够清楚地解释我的问题。

提前感谢大家:)

1 个答案:

答案 0 :(得分:1)

要向现有用户添加新用户名,您可能希望将其插入子表中,如下所示:

table.insert(dbs[tostring(id)]['users'][tostring(v.peer_id)].us_name, v.print_name)