2013-03-14 38 views
3

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

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

我想这个字符串转换到Lua表,这样我就可以像这样访问:

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

回答

9

你可以简单地添加一个str =到字符串的开头,让翻译负载该字符串为你的一块。请注意,loadstring不会运行该块,但会返回一个函数。所以你添加()调用该函数马上和实际执行的代码:

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

这将做同样的事情:

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

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

+0

谢谢!效果很好.. – akashdeep 2013-03-15 12:20:39