将表解析为字符串后 - > invert(将字符串解析为表)

时间:2014-08-21 09:10:14

标签: string parsing lua lua-table

我已经解析了一个字符串的多维表(工作正常)。 稍后在运行时,我可能需要解析它(它包含配置)。

有没有什么方法可以将字符串解析为多维表?

实施例

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}

print(string_from_table_xy)(解析后)输出:

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

最高的depht离mothertable有7个桌面,但这可能会在以后发生变化。

2 个答案:

答案 0 :(得分:4)

您可以加载字符串,然后将其作为以下函数运行:

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

local t = func()

在Lua 5.1中,使用loadstring代替load

答案 1 :(得分:1)

亲爱的,抱歉打扰你。 答案很简单,可能就是这样。

loadstring(string_from_table) 

效果很好。当然,它很慢,但我不认为人们可以在保持这条单线的舒适性的同时以更好的性能做到这一点。