首页 > 解决方案 > JSON序列化期间的快速错误:无法读取数据,因为它的格式不正确

问题描述

我正在尝试将 JSON 数据解析为 collectionView,但出现错误 JSON 序列化过程中的错误:无法读取数据,因为它的格式不正确。

这是我的模型课

   struct BaseModel : Codable{
    var status : String?
    var data : [Post]?

struct Post : Codable {
    let _id : String?
    let name : String?
    let icons : String?
    let createdAt : String?
    let updatedAt : String?
    let __v : Int?
    let id : String?
    
    enum CodingKeys: String, CodingKey {
        
        case _id = "_id"
        case name = "name"
        case icons = "icons"
        case createdAt = "createdAt"
        case updatedAt = "updatedAt"
        case __v = "__v"
        case id = "id"
    }
}
}

这是一些代码

 var places: [BaseModel]?
 func apicall() {
        
        let url = URL(string: "http://34.335.360.24/api/category/list")!
        URLSession.shared.dataTask(with: url) { (data, response, error) in
            
            if error == nil {

                do {
                    let responseData = try JSONDecoder().decode(BaseModel.self, from: data! )
                   self.places = responseData // get error on this line
                    
                } catch {
                    
                    print("Error during JSON serialization: \(error.localizedDescription)")
                }
            
        }
    }.resume()
    }

我在 do 语句中收到错误 -> 无法将类型“BaseModel”的值分配给类型“[BaseModel]?”

标签: iosswift

解决方案


尝试这个

let responseData = try JSONDecoder().decode([BaseModel].self, from: data!)

推荐阅读