我试图通过从
JSON数据填充数组来填充表.我正在使用下面的代码,但一直收到错误:
Type ‘Any’ has no subscript members
在以下代码行中:
self.tableData.append(jsonResult[i]["title"]! as! String) self.tableImages.append(jsonResult[i]["image"]! as! String) self.tableDesc.append(jsonResult[i]["description"]! as! String) self.tableValidity.append(jsonResult[i]["validity"]! as! String)
我的代码:
let str3 = Int(str2!)! let url = NSURL(string: "https://www.*****.PHP")! let task = URLSession.shared.dataTask(with: url as URL) { (data,response,error) -> Void in if let urlContent = data { do { let jsonResult = try JSONSerialization.jsonObject(with: urlContent,options: JSONSerialization.ReadingOptions.mutableContainers) print(str3) var i = 0 while i < str3 { print(jsonResult[i]["title"]! as!String) print(jsonResult[i]["image"]! as! String) self.tableData.append(jsonResult[i]["title"]! as! String) self.tableImages.append(jsonResult[i]["image"]! as! String) self.tableDesc.append(jsonResult[i]["description"]! as! String) self.tableValidity.append(jsonResult[i]["validity"]! as! String) i = i + 1 } } catch { print("JSON serialization Failed") } } else { print("ERROR FOUND HERE") } dispatchQueue.main.async(execute: { () -> Void in self.tableView.reloadData() }) } task.resume()
解决方法
编译器不知道jsonResult的类型,你必须告诉它是什么,例如使用这样的可选绑定:
if let jsonResult = try JSONSerialization.jsonObject(with: urlContent,options: []) as? [[String:AnyObject]] { }
在这里,我将JSON转换为一组字典.如果let和它应该工作,请使用你的循环.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。