如何从 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.ba["b"] 的语法糖。当然,您只能在可能的情况下使用它,并且生成的表达式不会有其他含义(如您的示例中所示)。

因此,你必须使用

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

您也可以删除所有点并仅使用[],例如:

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

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

【讨论】:

【参考方案2】:
print(myvar.value['0.ouname'].seq)

【讨论】:

以上是关于如何从 lua 数组中提取值?的主要内容,如果未能解决你的问题,请参考以下文章

lua如何从字符串提取某一个字符

如何从数组中提取某些值

如何从数组中的对象的某些键中提取值

lua如何从字符串提取某一个字符

如何从混合数据类型数组中仅提取一个数据类型值?

Lua:如何从_G中提取函数?