我是
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()
}
}
最佳答案
[{“id”:”1″,”name”:”sobande_ibukun”,”member”:”blue”}]
[] around表示它是一个数组.用以下代码解码,它应该工作:
let courses = try JSONDecoder().decode([Course].self, from: data)
如果您确定它始终是一门课程,您可以这样做:
print(courses.first!.name)
如果可能有很多课程,您可以打印每个名称:
courses.forEach { course in print(course.name) }