J'ai JSON prévisions météo et je nouvelle méthode à Swift 4 à sérialisation JSON avec la structure, mais le problème est que je recevrai quand je veux imprimer JSON:qu'est-ce qui ne va pas dans l'obtention de JSON dans SWIFT 4?
typeMismatch(Swift.Array, Swift.DecodingError.Context(codingPath: [], debugDescription: "Expected to decode Array but found a dictionary instead.", underlyingError: nil))
Voici mes codes pour JSON :
struct currently : Decodable {
let summary : String?
let temperature : Float?
let timezone : String
init(json : [String : Any]) {
summary = json["summary"] as? String ?? ""
temperature = json["temperature"] as? Float ?? -1
timezone = json["timezone"] as? String ?? ""
}
}
Et voici le code pour obtenir JSON:
let jsonURL = "https://api.darksky.net/forecast/[code]/\(ViewController.latitude),\(ViewController.longitude)"
guard let url = URL(string : jsonURL) else {
return
}
URLSession.shared.dataTask(with: url) { (data , response , error) in
guard let data = data else {return}
do {
let currentlies = try JSONDecoder().decode(currently.self , from : data)
print(currentlies.timezone)
print(currentlies.summary)
print(currentlies.temperature)
}
catch {
print(error)
}
}.resume()
L'erreur est claire. Votre racine JSON est un dictionnaire mais vous le traitez comme un tableau. – rmaddy
alors comment puis-je utiliser le dictionnaire dans swift 4? –
"comment puis-je utiliser dictionnaire dans swift 4" recherche que dans google – Siyavash