我正在调试其他人的应用程序,而且我遇到的数据结构在转储到文件时看起来像这样:
["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)
但我还没有成功!
如果您有任何建议,我会很感激。
答案 0 :(得分:3)
在Lua中,a.b
是a["b"]
的语法糖。当然,只有在可能的情况下才能使用它,结果表达式不会起到其他作用(如示例所示)。
因此,您必须使用
print(myvar.value["0.ouname"].seq)
您也可以删除所有点,仅使用[]
,因此:
print(myvar["value"]["0.ouname"]["seq"])
这与写入文件的格式完全相同。
答案 1 :(得分:2)
print(myvar.value['0.ouname'].seq)