Je me suis mis au JSON depuis peu et j’ai un peu de mal pour décrypter une partie d’un API : https://rickandmortyapi.com/api
Je n’arrive pas a trouver la structure adéquate pour récupérer plusieurs personnages, plusieurs locations ou plusieurs épisodes. Tous le reste est OK mais impossible de comprendre ce qu’il faut faire pour récupérer ceux-la.
J’ai fait tout internet mais la réponse dois tellement être facile que google ne me la montre pas
Merci pour votre aide !
Nicolas.
Edit :
Voici mes structures fonctionnelles :
Pour un personnage :
import Foundation
struct JSonSelectedCharacter: Codable {
let id: Int
let name: String
let status: String
let species: String
let type: String
let gender: String
let origin: Origin
let location: Location
let image: String
let episode: [String]
let url: String
let created: String
struct Origin: Codable {
let name: String
let url: String
}
struct Location: Codable {
let name: String
let url: String
}
je ne suis pas certain de comprendre l’erreur que tu rencontres.
Tu pourrais nous montrer le code où tu fais l’appel du webservice et le parsing ?
Et s’il y a une erreur qui s’affiche nous la donner ?
Comme ça on pourra t’aider à savoir à quel moment ça bloque
Merci pour ta réponse, mais j’ai trouver mon erreur
func getRangedOfCharacterWithString(withString stringURL: String){
RangedCharactersTransformedFromJson = []
if let url = URL(string: stringURL) {
URLSession.shared.dataTask(with: url) { data, response, error in
if let data = data {
do {
let res = try JSONDecoder().decode([JSonRangedCharacters].self, from: data)
self.RangedCharactersTransformedFromJson.append(contentsOf: res)
print(self.RangedCharactersTransformedFromJson)
} catch let error {
print(error)
}
DispatchQueue.main.async {
self.ui_tableview_residents.reloadData()
}
self.updateUIAfterJsonRequestLocation()
}
}.resume()
}
}
J’utilisais :
let res = try JSONDecoder().decode(JSonRangedCharacters.self, from: data)
au lieu de :
let res = try JSONDecoder().decode([SonRangedCharacters].self, from: data)
J’en ai conclu que si le JSON est un objet, il faut le décoder avec un array.
Encore désolé pour le poste inutile, j’ai du en effrayé beaucoup avec une question si stupide!
Mais si vous voyez de grosses erreurs dans ce code, n’hésitez pas !
Content que tu aies trouvé la solution Tu n’as effrayé personne ne t’inquiète pas, ton problème était complètement valide c’est surtout qu’il nous manquait des infos pour savoir quel problème tu rencontrais.
C’était surtout un soucis de formulation : pense à expliquer exactement le problème que tu rencontres plutôt (Erreur de compilation, crash lorsque j’arrive sur telle ligne, etc.) et surtout à mettre le code où l’erreur se produit