我用这段代码循环遍历一个字典数组。
if let users = object["usersList"] as? [Any] {
for user in users as! [String : Any] {
print(user["id"])
}
}
每个字典都有id
个属性。当我想用user["id"]
访问它时,我收到错误:
Type'(key:String,value:Any)'没有下标成员
答案 0 :(得分:2)
您正在将数组转换为无法工作的字典。
最简单的解决方案是(可选向下)将users
投射到特定[[String : Any]]
if let users = object["usersList"] as? [[String : Any]] {
for user in users {
print(user["id"])
}
}
答案 1 :(得分:1)
你不应该用as!
强制解包,而是像以前一样使用条件展开:
if let users = object["usersList"] as? [Any] {
for user in users
if let user = user as? [String : Any] {
if let userId = user["id"] {
print(userId)
}
}
}
}
这样你确定自己不会遇到崩溃。如果你不喜欢整个嵌套的东西,你也可以使用if-guard语句。
答案 2 :(得分:0)
试试这个
if let users = object["usersList"] as? [Any]{
for user in users as! [[String : Any]]{
print(user["id"])
}
}