В моем проекте используется бесплатный API дат.Я использую Decoadle
для анализа данных json.
Здесь я создал свою struct : -
struct jsonStruct: Decodable{
var message: Bool?
var data: [dateData]
}
struct dateData: Decodable {
var quarter: Int?
var day: String?
var month: String?
}
Это мой код для использования декодера: -
let jsonUrlString = "https://api.lrs.org/random-date-generator?lim_quarters=40&source=api-docs"
guard let url = URL(string: jsonUrlString) else {return}
URLSession.shared.dataTask(with: url) { (data, reponse, err) in
guard let data = data else {return}
print(data)
do{
let jsonData = try JSONDecoder().decode([dateData].self, from: data)
print(jsonData)
}
catch let jsonerr{
print("error serrializing error",jsonerr)
}
}.resume()
Но я получаю ошибку в своем коде, она идет только в блоке перехвата, и я получаю эту ошибку в моей консоли: -
ошибка сериализации ошибки typeMismatch (Swift.Array, Swift.DecodingError.Context (codingPath: [], debugDescription: «Ожидается декодировать массив, но вместо этого найден словарь.», UnderError: nil))
Я не понимаю, что яя делаю неправильно в моем коде.Пожалуйста, помогите?
Данные API: -
{сообщения: ложь, данные: {2018-01-02: {квартал: 1, день: "2", месяц: "1 ", дБ:" 2018-01-02 ", длинный:" вторник, 2 января 2018 года ", unix: 1514876400},