在lua中将字符串转换为表

时间:2013-03-14 14:51:06

标签: string lua lua-table

我是lua的新手。我需要将以下字符串转换为lua表。我怎么能这样做?

str = "{a=1, b=2, c={d=3,e=4} }"

我想将此字符串转换为lua表,以便我可以像这样访问它:

print(str['a']) -- Output : 1
print(str['c']['d']) -- Output : 3

1 个答案:

答案 0 :(得分:9)

您只需在字符串的开头添加str =,然后让解释器将该字符串作为一个块加载。请注意loadstring不运行块但返回一个函数。所以你添加()来立即调用该函数并实际执行代码:

loadstring("str = "..str)()

这会做同样的事情:

str = loadstring("return "..str)()

如果你自己没有生成字符串,那可能会很危险(因为任何代码都会被执行)。在这种情况下,您可能希望手动解析字符串,以确保它实际上是一个表并且不包含任何错误的函数调用。