ios - 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]?”
解决方案
尝试这个
let responseData = try JSONDecoder().decode([BaseModel].self, from: data!)
推荐阅读
- ios - 需要根据收到的 json 数据显示 TableView 部分和行
- c# - 使用多个线程来处理一个大列表?
- python - 我怎样才能使这段代码更高效,即一两行?
- javascript - Node Express.js 服务器返回不返回函数调用
- python - 在 django 中扩展用户模型后无法添加新用户
- graphql - GraphQL:如何构造突变以将项目添加到整数列表中?
- python - django.db.utils.DatabaseError: ORA-30673: 要修改的列不是标识列
- ssl - 使用 MAMP 在 localhost 上禁用 SSL
- android - 随着时间的推移重复使用 startService() 将命令发送到已启动的服务
- reactjs - 点击事件中的多个道具