Je souhaite creer un liste avec des infos que j’aurais récupéré depuis json sur un site.
j’aimerai faire cela avec SwiftUI.
Dans les cours de Maxime, les données sont déjà stockés dans fichier sous forme de tableau mais il n’y a rien sur le faite de recuperer depuis un site web en json et ensuite exploiter les données sius forme de liste. C’est généralement ce cas de figure que l’on rencontre.
La récupération de donnée JSON depuis un site internet n’est pas lié à SwiftUI.
Je pense que Maxime en parle dans un de ces cours, sur la partie avec Alamofire (si pas, regarde le repo GitHub d’Alamofire, c’est expliqué assez clairement à mes souvenirs).
Si tu as d’autres soucis/questions, n’hésites pas!
Je souhaite faire mon projet qu’en utilisant swiftUI
J’ai trouvé une solution en swift sans dépendre d’Alamofire que j’ai adapté pour l’api de wordpress. La voici pour ceux qui en auraient besoin :
import UIKit
struct Post: Codable {
let id: Int
let type: String
let thumbnail: String
let link: String
//Title is of type struct Title
let title: Title
}
//Structure to map Title
struct Title: Codable {
let rendered: String
}
let url = URL(string: "https://XXX.fr/wp-json/wp/v2/posts")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
// ensure there is no error for this HTTP response
guard error == nil else {
print ("error: \(error!)")
return
}
// ensure there is data returned from this HTTP response
guard let data = data else {
print("No data")
return
}
// Parse JSON into array using JSONDecoder
guard let posts = try? JSONDecoder().decode([Post].self, from: data) else {
print("Error: Couldn't decode data")
return
}
for Post in posts {
print(Post.id)
print(Post.type)
print(Post.thumbnail)
print(Post.link)
print(Post.title.rendered)
print("---")
}
}
// execute the HTTP request
task.resume()
Donc aucun soucis pour afficher les données avec print, mais je souhaite maintenant l’afficher sous forme de liste dans SwiftUI et je galère un peu.