我目前正在努力从字典数组中的数组中获取值。基本上我想抓住第一个" [0]"来自存储在字典数组中的数组。这基本上就是我所拥有的:
var array = [[String:Any]]()
var hobbies:[String] = []
var dict = [String:Any]()
viewDidLoad代码:
dict["Name"] = "Andreas"
hobbies.append("Football", "Programming")
dict["Hobbies"] = hobbies
array.append(dict)
/// - 但是,我只能使用以下代码显示名称:
var name = array[0]["Name"] as! String
是的;我知道这种方法的其他选项,但这些值来自Firebase(子路径) - 但我只需要找到一种方法在字典数组中显示数组。
提前致谢。
答案 0 :(得分:4)
如果您知道"Hobbies"
是有效密钥且其字典值是String
的数组,那么您可以直接访问该数组中的第一项:
let hobby = (array[0]["Hobbies"] as! [String])[0]
但如果"Hobbies"
不是有效密钥或价值不是[String]
,则会崩溃。
访问阵列的更安全的方法是:
if let hobbies = array[0]["Hobbies"] as? [String] {
print(hobbies[0])
}
答案 1 :(得分:1)
如果您使用模型类/结构,事情会变得更容易
struct Person {
let name: String
var hobbies: [String]
}
var persons = [String:Person]()
let andreas = Person(name: "Andreas", hobbies: ["Football", "Programming"])
persons[andreas.name] = Andreas
let aPerson = persons["Andreas"]