ios - 无法将解析的 JSON 数据显示到 UITableView
问题描述
我正在将 JSON 数据解析为模型对象嵌套结构。我还在对模型进行排序并附加到按字母顺序排序的 sortedArr 数组中。我正在尝试将姓名和其他信息(例如传记)显示到我的表格视图中。当试图在我的表格视图单元格中显示 indexPath 的名称时,我无法访问数组的成员,例如 fullName、biography 等。
struct Response: Decodable {
struct Students: Decodable {
var fullName :String
var biography:String
var emailAddress:String
enum CodingKeys: String, CodingKey {
case fullName = "full_name"
case biography
case emailAddress = "email_address"
}
}
var students:[Students]
}
var sortedArr = [[Response.Students]]()
func parseData(){
guard let url = URL(string: "xxxxxx") else {return}
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let dataResponse = data,
error == nil else {
print(error?.localizedDescription ?? "Error")
return
}
do {
let response = try! JSONDecoder().decode(Response.self, from: dataResponse)
self.sortedArr = response.students.sorted{$0.fullName < $1.fullName}
DispatchQueue.main.async {
self.tableView.reloadData()
}
} catch let parsingError {
print("Error", parsingError)
}
}
task.resume()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return sortedArr.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellID, for: indexPath) as! EmployeeTableViewCell
let emps = sortedArr[indexPath.row]
cell.titleLabel.text = emps.fullName //has no member fullName
return cell
}
解决方案
推荐阅读
- flutter - 使用 Flutter 项目运行 Pod 安装时出错
- azure - 如何在 PC 和云托管 VM 之间共享文件?
- c# - 我可以使用基数排序对带有字段的对象进行排序吗
- python - 使用使用 Blender 构建的模型进行数据可视化
- javascript - 处理输入类型=数字的 onChange
- python - Prophet 模型欠拟合并抛出警告
- python - httpx - 模块“httpcore”没有属性“TimeoutException”
- html - 消息中的 Html 按钮以创建另一条消息
- php - PHP 正则表达式:不允许再有 3 位数字,但可以计算其他字符
- javascript - discord.js 机器人 youtube 链接