Я пытаюсь декодировать некоторый JSON из API, который выглядит так (foo — это короткий список свойств):
{"page":1,"total_results":10000,"total_pages":500,"results":[{"foo":"bar"},{"foo":"bar2"},{"foo":"bar3"}]}
Структура, рекомендованная quicktype.io, которая мне тоже кажется правильной:
struct ObjectsReturned: Codable {
let page, totalResults, totalPages: Int
let results: [Result]
enum CodingKeys: String, CodingKey {
case page
case totalResults = "total_results"
case totalPages = "total_pages"
case results
}
}
// MARK: - Result
struct Result: Codable {
let foo: String
}
Однако, когда я пытаюсь декодировать, хотя он может обрабатывать страницу, он выдает ошибку в total_results следующим образом:
typeMismatch(Swift.Dictionary‹Swift.String, Any›, Swift.DecodingError.Context(codingPath: [_DictionaryCodingKey(stringValue: total_results, intValue: nil)], debugDescription: Ожидается декодирование Dictionary‹String, Any›, но вместо этого найдено число ., основная ошибка: ноль))
В чем может быть причина этой ошибки и как ее исправить?
Спасибо за любые предложения.
Примечание:
Декодирование осуществляется через:
do {
let mything = try JSONDecoder().decode([String:ObjectReturned].self, from: data)
} catch {
print(error)
}
decode
какdecode(ObjectReturned.self, from: data)
- person Joakim Danielson   schedule 28.07.2020