привет, я хочу получить данные json, данные json такие
"items":[
{
"date_for":"2018-11-11",
"fajr":"5:28 am",
"shurooq":"6:37 am",
"dhuhr":"11:52 am",
"asr":"2:40 pm",
"maghrib":"5:06 pm",
"isha":"6:15 pm"
}
],
Чем я могу декодировать для JSONDecoder, как это:
struct PrayerModel: Decodable {
var items: [Items]
}
struct Items: Decodable {
var fajr: String
var dhuhr: String
var asr: String
var maghrib: String
var isha: String
init(dictionary: [String: String]) {
self.fajr = dictionary["fajr"] ?? ""
self.dhuhr = dictionary["dhuhr"] ?? ""
self.asr = dictionary["asr"] ?? ""
self.maghrib = dictionary["maghrib"] ?? ""
self.isha = dictionary["isha"] ?? ""
}
}
и затем я создаю объект для хранения декодируемых данных:
struct Prayer {
var prayerName: String
var prayerIcon: UIImage
var prayerTime: String
init(prayerName: String, prayerIcon: UIImage, prayerTime: String) {
self.prayerName = prayerName
self.prayerIcon = prayerIcon
self.prayerTime = prayerTime
}
}
и получить его с помощью URLSession:
do {
let prayerData = try JSONDecoder().decode(PrayerModel.self, from: data)
prayerData.items.forEach({ (item) in
let isya = Prayer(prayerName: "Isya", prayerIcon: #imageLiteral(resourceName: "Clear"), prayerTime: item.isha)
self.prayers.append(contentsOf: [shubuh, dzuhur, ashar, maghrib, isya])
})
DispatchQueue.main.async {
self.tableView.reloadData()
}
} catch let decodeErr {
print("Failed to decode:", decodeErr)
}
и я получил это ошибка
Не удалось декодировать: dataCorrupted (Swift.DecodingError.Context (codingPath: [], debugDescription: «Данные недопустимы в формате JSON.», UnderError: Необязательно (Ошибка домена = NSCocoaErrorDomain Code = 3840) Текст JSON не запустился) с массивом или объектом и параметром, позволяющим не задавать фрагменты. "UserInfo = {NSDebugDescription = Текст JSON не начинался с массива или объекта, а также параметр, позволяющий не задавать фрагменты.})))
где проблема для моего кода, кто-нибудь может помочь?