“类型”;任何;在alamofire 4 iOS swift中没有下标成员
我知道这个问题可以重复。但我试图找到解决问题的办法。不幸的是,我没有找到正确的答案。这就是我所做的 我试图使用alamofire访问Youtube数据。在我看来“类型”;任何;在alamofire 4 iOS swift中没有下标成员,ios,swift,alamofire,Ios,Swift,Alamofire,我知道这个问题可以重复。但我试图找到解决问题的办法。不幸的是,我没有找到正确的答案。这就是我所做的 我试图使用alamofire访问Youtube数据。在我看来 let API_KEY = "**************" let UPLOADS_PLAYLIST_ID = "PLqQMDoH89jqEoHMTsxxyMz1Hym_pOViq6" let CHANNEL_ID = "UCcMUpFCaFhlyjZyy9d9LeRA" let parameters
let API_KEY = "**************"
let UPLOADS_PLAYLIST_ID = "PLqQMDoH89jqEoHMTsxxyMz1Hym_pOViq6"
let CHANNEL_ID = "UCcMUpFCaFhlyjZyy9d9LeRA"
let parameters = ["part":"snippet","channelId":CHANNEL_ID,"playListId":UPLOADS_PLAYLIST_ID,"key":API_KEY]
Alamofire.request("https://www.googleapis.com/youtube/v3/playlists", parameters: parameters, encoding: URLEncoding.default, headers: nil).responseJSON { (response) in
if let JSON = response.result.value{
for video in JSON["item"] as! NSArray {
print(video)
}
}
}
这是给我的错误类型“any”没有下标成员
我也尝试了另一种方法,但这也给了我错误
Alamofire.request("https://www.googleapis.com/youtube/v3/playlists",
parameters: parameters, encoding: URLEncoding.default, headers:
nil).responseJSON { (response) in
switch(response.result) {
case .success(_):
if let JSON = response.result.value as! [[String : Any]]!{
for video in JSON["item"] as! NSArray {
print(video)
}
}
break
case .failure(_):
print("There is an error")
break
}
}
这是一个错误提示,不能用string类型的索引下标“[[string:any]]”类型的值。您不能对任何变量类型重新强制转换,您可以使用[string:[string:any]]进行强制转换。在此处发布:
如果让JSON=response.result.value为![[String:Any]]代码>
第一:如果使用可选链接(if-let
),请不要使用强制转换(as!
和[[String:Any]]!
)
其次,JSON不是字典
,而是字典
的数组
试试看:
如果让JSON=response.result.value为?[字符串:任意]
还有,当你尝试
if let JSON = response.result.value{
for video in JSON["item"] as! NSArray {
print(video)
}
}
您没有将JSON
变量强制转换为Dictionary
,您只需检查JSON
是否为空。那么我现在应该怎么做?直接转换为NSArray或NSDictionnary之类的类型。如果您确实喜欢使用[:]方法进行强制转换,只需根据类型更改any,例如[String:[String:String]]现在我尝试这种方法现在我尝试这种方法,如果让JSON=response.result.value as?[String:Any]{for video in JSON[“item”]as!NSArray{print(video)}}但出现此致命错误致命错误:在展开可选值读取JSON时意外发现nil。这很简单。集合类型只有两种:数组([]
)和字典({}
)。这个JSON显然是从一个字典开始的。现在我尝试这种方式,现在我尝试这种方式,如果让JSON=response.result.value作为?[String:Any]{for video in JSON[“item”]as!NSArray{print(video)}}但出现此致命错误致命错误:在展开可选值时意外发现nil现在该怎么办。我真的很困惑,看起来您的JSON不包含“item”元素。编辑您的问题并在那里发布您的JSON