我开始学习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”...我很确定我完全不知道如何在像我这样的表中插入元素。
你们中的任何人都可以这么善意帮助我吗?我希望能够清楚地解释我的问题。
提前感谢大家:)
答案 0 :(得分:1)
要向现有用户添加新用户名,您可能希望将其插入子表中,如下所示:
table.insert(dbs[tostring(id)]['users'][tostring(v.peer_id)].us_name, v.print_name)