如何从Lua数组中提取值?

3

我正在调试别人的应用程序,遇到了一个数据结构,将其转储到文件时,看起来像这样:

 ["value"] = {}
 ["value"]["0.ouname"] = {}
 ["value"]["0.ouname"]["label"] = "Test value"
 ["value"]["0.ouname"]["seq"] = 90
 ["value"]["0.ouname"]["type"] = "text"
 ["value"]["0.ouname"]["value"] = ""
 ["value"]["1.ouname"] = {}
 ["value"]["localityName"]["value"] = "California"

我需要能够从中提取序列号"90",但是我不知道如何做。 我可以通过以下方式获取“加利福尼亚”值:

print(myvar.value.localityName.value)

然而,我似乎无法获取序列号。

到目前为止,我尝试了以下方法:

print(myvar.value.0.ouname.seq)
print(myvar.value.["0.ouname"].seq)
print(myvar.value."0.ouname".seq)

但是我一直没有成功过!

如果您有任何建议,我将不胜感激。

2个回答

3
在Lua中,a.ba["b"]的语法糖。当可以使用它时,你可以使用它,并且生成的表达式不会意味着其他东西(如你的示例中所示)。
因此,您必须使用
print(myvar.value["0.ouname"].seq)

您也可以放弃所有点号,只使用[],如下所示:

print(myvar["value"]["0.ouname"]["seq"])

这正是写入文件的完全相同的格式。

2
print(myvar.value['0.ouname'].seq)

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