json – 解码错误 – 期望解码字典但是找到了一个数组
发布时间:2020-12-14 17:26:40 所属栏目:百科 来源:网络整理
导读:我是 swift编程和 Xcode的新手,我尝试使用Json编码从数据库调用mysql数据到Xcode.我能够成功调用所有数据(数组),但当我决定只调用一个值(列)时,请说Courses.name我得到“解码错误 – 期望解码字典但是找到了一个数组”.我如何解决这个问题呢?我的目标是只打
我是
swift编程和
Xcode的新手,我尝试使用Json编码从数据库调用mysql数据到Xcode.我能够成功调用所有数据(数组),但当我决定只调用一个值(列)时,请说Courses.name我得到“解码错误 – 期望解码字典但是找到了一个数组”.我如何解决这个问题呢?我的目标是只打印courses.name
import UIKit struct Course: Decodable { let id: String let name: String let member: String } class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let jsonUrlString = "http://oriri.ng/aapl/service.php" guard let url = URL(string: jsonUrlString) else { return } URLSession.shared.dataTask(with: url) { (data,response,err) in guard let data = data else{ return } do { let courses = try JSONDecoder().decode(Course.self,from: data) print(courses.name) } catch let jsonErr { print("Error serializing json:",jsonErr) } }.resume() } } 解决方法
[] around表示它是一个数组.用以下代码解码,它应该工作: let courses = try JSONDecoder().decode([Course].self,from: data) 如果您确定它始终是一门课程,您可以这样做: print(courses.first!.name) 如果可能有很多课程,您可以打印每个名称: courses.forEach { course in print(course.name) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |