Не удается преобразовать значение типа ‘ ‘ в ‘ ‘

#json #swift #parsing

#json #быстрый #синтаксический анализ

Вопрос:

Я пытаюсь извлечь данные из созданного мной API. Казалось, все шло хорошо, пока я не начал анализировать / декодировать данные.

Это те ошибки, которые появляются:

Фотография кода с ошибками

и это тот код, который у меня есть

 import Foundation
struct VaccineManager {
    
    let vaccineURL = "https://coronavirus.data.gov.uk/api/v1/data?filters=areaType=overviewamp;structure={"areaType":"areaType","areaName":"areaName","areaCode":"areaCode","date":"date","newPeopleVaccinatedFirstDoseByPublishDate":"newPeopleVaccinatedFirstDoseByPublishDate","newPeopleVaccinatedSecondDoseByPublishDate":"newPeopleVaccinatedSecondDoseByPublishDate","cumPeopleVaccinatedFirstDoseByPublishDate":"cumPeopleVaccinatedFirstDoseByPublishDate","cumPeopleVaccinatedSecondDoseByPublishDate":"cumPeopleVaccinatedSecondDoseByPublishDate"}amp;format=json"
    
    func performRequest(vaccineURL: String){
        if let url = URL(string: vaccineURL) {
            let session = URLSession(configuration: .default)
            let task = session.dataTask(with: url) { (data, response, error) in
                if error != nil {
                    print(error!)
                    return
                }
                
                if let safeData = data {
                    parseJASON(vaccineData: safeData)
                    
                }
            }
            task.resume()
            
            
        }
    }
    
    func parseJASON(vaccineData: Data) {
        let decoder = JSONDecoder()
        do{
       let decodedData =  try decoder.decode(VaccineData.self, from: vaccineData)
            print(decodedData.data[0].date)
        } catch {
            print(error)
        }
    }
 

На случай, если это как-то связано с этим, у меня также есть файл с этим кодом

 struct VaccineData: Decodable {
    let data: Data
}

struct Data: Decodable {
    let newPeopleVaccinatedFirstDoseByPublishDate: Int
}
 

Застрял на несколько дней, так что спасибо вам за вашу помощь!

Комментарии:

1. Вы переопределили Data тип Swift на свой собственный — не делайте этого. Переименуйте ваш Data файл во что-нибудь другое или вложите его внутрь VaccineData , если он используется только там

2. Я уверен, что вы на 100% правы, но я не понимаю, что мне нужно делать.

3. Как я уже сказал, переименуйте свой Data тип (тот, который указан в нижней части вашего вопроса) во что-то другое.