json – 解码错误 – 期望解码字典但是找到了一个数组

前端之家收集整理的这篇文章主要介绍了json – 解码错误 – 期望解码字典但是找到了一个数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 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) }

猜你在找的Xcode相关文章