如何从 Lua 数组中提取一个值?

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

["value"] = {}
["value"] ["0.ouname"] = {}
["value"] ["0.ouname"] ["label"] =“测试值”
["value"] ["0.ouname"] ["seq"] = 90
["value"] ["0.ouname"] ["type"] =“文本”
["value"] ["0.ouname"] ["value"] = ""
["value"] ["1.ouname"] = {}
["value"] ["localityName"] ["value"] =“加利福尼亚州”

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

print(myvar.value.localityName.value)

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

到目前为止,我尝试了以下内容:

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

但我没有成功!

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

点赞
用户1847592
用户1847592
打印出 `myvar.value` 中键为 `0.ouname` 的值的 `seq` 属性。
2013-03-08 14:44:09
用户752976
用户752976

在 Lua 中,a.ba["b"] 的语法糖。当然,只有在可能使用它且结果表达式不会意味着其他东西时才能使用它(就像你的例子一样)。

因此,你必须使用

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

你也可以省略所有的点,只使用 [],如下所示:

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

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

2013-03-08 14:56:01