【发布时间】:2016-07-01 10:15:16
【问题描述】:
我开始学习 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.insert用于数组,而您没有。您是否尝试创建要添加到users的表? -
table.insert向表中插入一个值并且不返回任何内容。 -
单个用户可以更改名称,所以我想在字段 us_names 中存储新值而不覆盖它...我认为最好的方法是声明一个 us_names 广告数组以使用 table.insert存储该字段而不覆盖以前的值
标签: lua