我是lua的新手。我需要将以下字符串转换为lua表。我怎么能这样做?
str = "{a=1, b=2, c={d=3,e=4} }"
我想将此字符串转换为lua表,以便我可以像这样访问它:
print(str['a']) -- Output : 1
print(str['c']['d']) -- Output : 3
答案 0 :(得分:9)
您只需在字符串的开头添加str =
,然后让解释器将该字符串作为一个块加载。请注意loadstring
不运行块但返回一个函数。所以你添加()
来立即调用该函数并实际执行代码:
loadstring("str = "..str)()
这会做同样的事情:
str = loadstring("return "..str)()
如果你自己没有生成字符串,那可能会很危险(因为任何代码都会被执行)。在这种情况下,您可能希望手动解析字符串,以确保它实际上是一个表并且不包含任何错误的函数调用。