【发布时间】:2018-12-17 19:14:03
【问题描述】:
JSON 解码有问题。我为这个问题添加了其他答案,我也做了同样的事情,但我仍然得到错误。我做错了什么?
URLSession.shared.dataTask(with: r) { (data, response, error) in
do {
guard let data = data else { return }
let banners = try JSONDecoder().decode([Banner].self, from: data)
print(banners)
} catch let error as NSError {
print(error)
}
}
}.resume()
struct Banner: Decodable {
var title: String
var desc: String
var image: String
}
JSON响应:
[
{
"id": "b4a95512-8de2-4621-8956-3289e991fb0b",
"image": "https://picsum.photos/500/324/"
},
{
"id": "4e1c703d-4841-469b-be2e-8f15d6cbd0c3",
"title": "Lays",
"image": "https://picsum.photos/500/324/"
},
{
"id": "4315705e-e6fc-4dfa-a52e-c9de2031ed53",
"desc": "ФРУТОНЯНЯ Для детского питания с яблоком, для малышей от 0 до 3 лет",
"image": "https://picsum.photos/500/324/"
},
{
"id": "0b8e40ae-5e13-4bdd-905d-a13ffdd94b65",
"title": "Бульмени",
"desc": "ГОРЯЧАЯ ШТУЧКА Со сливочным маслом",
"image": "https://picsum.photos/500/324/"
}
]
【问题讨论】:
-
此 JSON 和代码不会导致此错误。你应该得到一个
keyNotFound错误。并删除let error as NSError。解码错误永远不会是NSError。