我正在尝试查询Marvel API。我想我的解码器是错的。我有以下代码:
struct ReturnedData : Decodable {
var id : Int?
var name : String?
var description : String?
}
var savedData : [ReturnedData] = []
let urlString = "https://gateway.marvel.com/v1/public/characters?ts=1&apikey=(myAPIKey)"
let url = URL(string: urlString)
let session = URLSession.shared
let dataTask = session.dataTask(with: url!) { (data, response, error) in
guard let data = data else {return}
do {
let recievedData = try JSONDecoder().decode([ReturnedData].self, from: data)
self.savedData = recievedData
} catch {
print(error)
}
}
dataTask.resume()
}
我收到以下错误消息:typeMisMatch(Swift.Array,Swift.DecodingError.Context(codingPath:[],debugDescription:“期望对数组进行解码,但找到了字典。”,underlyingError:nil))
根据文档,我应该得到以下所有内容:
id(int,可选):角色资源的唯一ID,name(字符串,可选):角色名称。Description(字符串,可选):对角色的简短简介或描述。修改日期(日期,可选):资源最近一次修改的日期。resource URI(字符串,可选):该资源的规范URL标识。URL(数组[URL],可选):资源的公共网站URL集合。缩略图(图片,可选):该角色的代表性图片。漫画(ComicList,可选):包含该角色漫画的资源列表。Stories(故事列表,可选):该角色出现的故事资源列表Events(EventList,可选):该角色出现的事件资源列表。系列(SeriesList,可选):该字符出现的系列资源列表。
此外,任何关于如何获得缩略图的提示都是值得赞赏的。
1条答案
按热度按时间sczxawaw1#
您得到的错误是因为您拥有的模型与json数据不匹配。因此,尝试这种方法
...to query the marvel API...
。将来,将您的json数据复制并粘贴到https://app.quicktype.io/中,这将为您生成模型。根据您的需要调整生成的代码。或者,在https://developer.marvel.com/docs#!/public/getCreatorCollection_get_0上阅读文档,并根据给定的信息手动创建模型。编辑-1:如果你想要一些非常基本的东西,那么试试这个: