Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua嵌套表,table.insert函数_Lua - Fatal编程技术网

Lua嵌套表,table.insert函数

Lua嵌套表,table.insert函数,lua,Lua,我开始学习lua,现在我尝试处理嵌套表 基本上,我想使用json与lua的交互来创建一种本地“数据库”(我发现这是存储我的值的最好方法) 我应该做的是扫描聊天组中的所有成员(我使用的是非官方的电报api),并在表中存储一些值。我能够检索所需的所有数据,因此以下是在main函数中声明的结构: local dbs = load_data("./data/database.json") dbs[tostring(msg.to.id)] = { gr_name = {},

我开始学习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(dbs[tostring(id)]['users'][tostring(v.peer_id)].us_name, v.print_name)

不清楚你想做什么
table.insert
用于数组,而您没有数组。您正在尝试创建要添加到
用户
的表吗?
表。insert
将值插入表中,并且不返回任何内容。单个用户可以更改名称,因此我希望存储新值而不在字段us\u names中覆盖它。。。我认为最好的方法是在该字段中声明一个us_names数组以使用table.insert进行存储,而不过度使用以前的值Yea已解决,谢谢:)我发现事实上,table.insert不需要像我那样使用equals进行赋值。