我已经将我的代码更新为 Swift 3 协议,这是我遇到的最后一个关于 JSON 无法解决的错误。
这是我的代码:
let task = URLSession.shared.dataTask(with: targetURL!, completionHandler: { (data, response, error) -> Void in
do {
if let jsonResult = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.allowFragments) as? [String : AnyObject] {
if let items = jsonResult["items"] as? [String : AnyObject]? {
if let youtubeVideoImageURL = items![0]["snippet"]!!["thumbnails"]!!["high"]!!["url"]!! as? String {
self.youtubeJsonImage.loadImageUsingCacheWithUrlString(youtubeVideoImageURL)
self.youtubeImageURLHidden.text = youtubeVideoImageURL
self.youtubeJsonImage.clipsToBounds = true
} else {
let youtubeVideoImageURL = items![0]["snippet"]!!["thumbnails"]!!["standard"]!!["url"]!! as? String
self.youtubeJsonImage.loadImageUsingCacheWithUrlString(youtubeVideoImageURL!)
self.youtubeImageURLHidden.text = youtubeVideoImageURL
self.youtubeJsonImage.clipsToBounds = true
}
let youtubeLikeCount = items![0]["statistics"]!!["commentCount"]!!
let itermediarytext = youtubeLikeCount as! String
let numberText = Int(itermediarytext)
let finalText = self.suffixNumber(numberText!)
self.youtubeVideoLikes.text = "\(finalText) comments"
self.determineBool()
}
}
}
catch {
print("json error: \(error)")
self.stopAnimating()
}
})
// Start the request
task.resume()
}
这是歧义参考的错误行,
if let youtubeVideoImageURL = items![0]["snippet"]!!["thumbnails"]!!["high"]!!["url"]!! as? String {
我还查看了其他堆栈溢出解决方案,但它们似乎不适用于这种类型的数据结构。
非常感谢任何帮助。
谢谢。