将字符串转换为 Lua 中的表格。

我是一个Lua的新手。我需要将以下字符串转换为Lua表。我该怎么做?

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

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

print(str ['a'])-- 输出:1
print(str ['c'] ['d'])-- 输出:3
点赞
用户1633117
用户1633117

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

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

这将完成相同的操作:

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

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

2013-03-14 14:57:27