我正在尝试将下面的json转换为快速对象数组,但是我的网络代码无法正常工作,我也不明白为什么。我认为结构很好。我有没有想说的一点?
这是我的json
[
{
"_id": "5dea3ab67d9a460017740940",
"chamber_id": {
"_id": "5d94d5cb363db3168af5fb6b",
"name": "Adana Eczacı Odası",
"image_url": "http://eczachat.com/logos-sites/4.jpg"
},
"title": "E-FATURAYA GEÇİŞ SÜRECİ İLE İLGİLİ BİLGİLENDİRME TOPLANTISI",
"url": "http://www.adanaeo.org.tr/haber-8448",
"type": "chamber",
"created_at": "2019-12-06T11:25:42.399Z",
"updatedAt": "2019-12-06T11:25:42.399Z",
"__v": 0
},
{
"_id": "5de9f56a7d9a460017740924",
"chamber_id": {
"_id": "5d94d5cb363db3168af5fb9e",
"name": "Türk Eczacıları Birliği",
"image_url": "http://eczachat.com/logos-sites/teb.jpg"
},
"title": "06.12.2019 | 42. Dönem Merkez Heyeti ve Denetleme Kurulu Görev Dağılımı",
"url": "https://www.teb.org.tr/news/8561/42-Dönem-Merkez-Heyeti-ve-Denetleme-Kurulu-Görev-Dağılımı",
"type": "site",
"created_at": "2019-12-06T06:30:02.206Z",
"updatedAt": "2019-12-06T06:30:02.206Z",
"__v": 0
}
]
这是我的结构
struct FeedContent: Codable {
var _id: String
var chamber_id: Chamber
var title: String
var url: String
var created_at: String
}
struct Chamber: Codable {
var _id: String
var name: String
var image_url: String
}
这是我的快速联网代码
URLSession.shared.dataTask(with: urlRequest){(data, response, error) in
if error != nil{
completion(.failure(error!))
} else {
guard let response = response as? HTTPURLResponse, let jsonData = data else { return }
if response.statusCode == 422 {
let apiErrorData = try? JSONDecoder().decode(APIError.self, from: jsonData)
guard let apiError = apiErrorData else { return }
completion(.failure(apiError))
}
if response.statusCode == 200 {
do {
let feedData = try JSONDecoder().decode([FeedContent].self, from: jsonData)
completion(.success(feedData))
} catch let jsonError {
completion(.failure(jsonError))
}
}
}
}.resume()
EDIT:我正在尝试使用catch块,但xcode不会引发任何错误。
我正在检查您的DTO模型与您有疑问的JSON字符串。似乎它们完美匹配,应该可以使用。