Я пытаюсь декодировать некоторый JSON , и я получаю сообщение об ошибке:
Cannot assign value of type '[ViewController.Response]' to type '[ViewController.Doc]'
Насколько я вижу, обе структуры настроены одинаково, поэтому я не понимаю, в чем здесь проблема.
Это мои структуры:
struct Status: Decodable {
let status: String
let response: [Response]
}
struct Response: Decodable {
let docs: [Doc]
}
struct Doc: Decodable {
let webUrl: String
let abstract: String
enum CodingKeys: String, CodingKey {
case webUrl = "web_url"
case abstract
}
init(from decoder:Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
abstract = try container.decode(String.self, forKey: .abstract)
webUrl = try container.decode(String.self, forKey: .webUrl)
}
}
Ошибка возникает при вызове моей fetchData
функции в viewDidLoad
(ошибка в случае .success
в object.response
):
fetchData(url: jsonUrl) { (result: FetchResult<Status>) in
switch result {
case .success(let object): self.storyData = object.response
print("Results \n\n\n\n \(object.response)")
case .failure(let error): print(error)
}
}
EDIT: это массив, который я заполняю данными JSON:
var storyData = [Doc]()