如何从 lua 数组中提取值?
Posted
技术标签:
【中文标题】如何从 lua 数组中提取值?【英文标题】:how do i extract a value from a lua array? 【发布时间】:2013-02-24 03:28:52 【问题描述】:我正在调试别人的应用程序,我遇到了一个数据结构,当转储到文件时,它看起来像这样:
["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)
但我没有成功!
如果您有任何建议,我将不胜感激。
【问题讨论】:
【参考方案1】:在 Lua 中,a.b
是 a["b"]
的语法糖。当然,您只能在可能的情况下使用它,并且生成的表达式不会有其他含义(如您的示例中所示)。
因此,你必须使用
print(myvar.value["0.ouname"].seq)
您也可以删除所有点并仅使用[]
,例如:
print(myvar["value"]["0.ouname"]["seq"])
这与写入文件的格式完全相同。
【讨论】:
【参考方案2】:print(myvar.value['0.ouname'].seq)
【讨论】:
以上是关于如何从 lua 数组中提取值?的主要内容,如果未能解决你的问题,请参考以下文章