2013-03-08 3 views
3

Я отладка чужого приложения, и я перебежать структуру данных, которая, когда выгружается в файл, выглядит следующим образом:Как извлечь значение из массива lua?

["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) 

Но я не был успешным!

Если у вас есть предложения, я был бы признателен.

ответ

3

В Lua a.b является синтаксически a["b"]. Конечно, вы можете использовать его только тогда, когда это возможно, и полученное выражение не будет означать что-то другое (как в вашем примере).

Таким образом, вы должны использовать

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

Вы также можете удалить все точки и использовать только [], как таковой:

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

Который точно такой же формат, который был записан в файл ,