在Lua中将字符串转换为表格

4

我是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个回答

13

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

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

这样做会达到同样的效果:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接