将表格解析为字符串后 -> 反转(将解析后的字符串转换为表格)

我有一个多维表格,将其解析为字符串(可以正常工作)。 在运行时稍后,我可能需要将其解析回来(它包含配置)。

是否有一种方便的方法将字符串解析为多维表格?

例子:

table_xy = {}
table_xy.a = {  a= {}, b = 12, c = "sdf" , d = true , e = {}}
table_xy.b = { false,true,true,false}
table_xy.a.a = {lolbert, roflcopter}
table_xy.a.e = {4, table_xy.a.e}

打印(解析后的)string_from_table_xy输出:

{a={a={},c="sdf",b=12,e={4,{}},d=true},b={false,true,true,false}}

最高深度离母表格有7个表格之远,但这可能稍后会发生改变。

点赞
用户3911769
用户3911769

哦,很抱歉打扰了您。 答案非常简单。

loadstring(string_from_table)

效果还不错。当然,它的速度较慢,但我认为在保持这一行代码的舒适性的同时,很难做到更好的性能。

2014-08-21 09:16:34
用户1009479
用户1009479

你可以像下面这样加载字符串并将其作为函数运行:

local func = assert(load("return " .. string_from_table_xy))

local t = func()

在 Lua 5.1 中,使用 loadstring 替代 load

2014-08-21 09:17:34