我如何从lua数组中提取值?

时间:2013-03-08 14:39:35

标签: arrays lua lua-table

我正在调试其他人的应用程序,而且我遇到的数据结构在转储到文件时看起来像这样:

 ["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 个答案:

答案 0 :(得分:3)

在Lua中,a.ba["b"]的语法糖。当然,只有在可能的情况下才能使用它,结果表达式不会起到其他作用(如示例所示)。

因此,您必须使用

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

您也可以删除所有点,仅使用[],因此:

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

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

答案 1 :(得分:2)

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