[ad_1]
I’m able to parse and decode knowledge coming from IMGUR web site. Nonetheless when I attempt to print out one of many properties from Knowledge it doesn’t present something. How do I repair this? Additionally I need to entry the contents of photos, particularly the hyperlinks. How can I entry the contents Of the picture because it’s an array?
struct PhotoResponse:Codable {
let success: Bool
let standing: Int
let knowledge: [Data]
}
struct Knowledge:Codable {
let id: String
let title: String
let views: Int
let hyperlink: String
let photos: [Image]?
let animated: Bool?
}
struct Picture: Codable {
let id: String
let imageDescription: String?
let hyperlink: String?
let dimension: Int
}
class NetworkService{
static let shared = NetworkService()
personal let baseURL = "https://api.imgur.com/3/gallery"
personal init() {}
func getJSON( searchName: String, completion: @escaping([Data]) -> Void){
let endPoints = baseURL + "/search/time/week/?q=(searchName)"
guard let url = URL(string: endPoints ) else{
return
}
var request = URLRequest(url: url)
let headers = ["Authorization": ""]
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
request.addValue("software/json", forHTTPHeaderField: "Content material-Sort")
request.addValue("software/json", forHTTPHeaderField: "Settle for")
URLSession.shared.dataTask(with: request) { knowledge, response, error in
if let error = error {
print("Failed to question database", error)
}
guard let knowledge = knowledge else {
print("Knowledge not acquired(String(describing: error))")
return
}
let decoder = JSONDecoder()
do{
let decodedJson = strive decoder.decode(PhotoResponse.self, from: knowledge)
DispatchQueue.fundamental.async {
completion(decodedJson.knowledge)
}
}catch let error{
print("Json did not decode(String(describing: error))")
return
}
}.resume()
}
}
NetworkService.shared.getJSON(searchName: "cat") { (pictures) in
for photograph in pictures {
print(photograph.title)
print(photograph.id)
}
[ad_2]
