I was wondering how to parse to, get all data from API within Alamofire.
Here is the code that downloads just a one Dictionary of data from API. How can I download other things from it?
Here is screenshot from JSONFormatter:
https://i.sstatic.net/r33jG.jpg
func downloadJsonData (completed: @escaping DownloadCompleted) {
Alamofire.request(url, method: .get).responseJSON { response in
let result = response.result.value
if let dict = result as? [Dictionary<String,AnyObject>] {
if let id = dict[0]["id"] as? String {
self._id = id
print("@@@\(self._id)")
}
if let name = dict[0]["name"] as? String {
self._name = name
print("@@@\(self._name)")
}
if let avatar = dict[0]["avatar"] as? String {
self._avatar = avatar
print("@@@\(self._avatar)")
}
if let lat = dict[0]["lat"] as? Float {
self._lat = lat
print("@@@\(self._lat)")
}
if let lng = dict[0]["lng"] as? Float {
self._lng = lng
print("@@@\(self._lng)")
}
}
}
completed()
}
func downloadJsonData (completed: @escaping DownloadCompleted) {
Alamofire.request(url, method: .get).responseJSON { response in
if let collectionData = response.result.value as? [[String:AnyObject]] {
let collection : [YourStruct] = collectionData.flatMap { data in
guard let id = data["id"] as? String,
let name = data["name"] as? String,
let avatar = data["avatar"] as? String,
let lat = data["lat"] as? Float,
let lng = data["lng"] as? Float
else {
return nil
}
return YourStruct(id:id, name:name, avatar:avatar, lat:lat, lng:lng)
}
}
}
completed()
}
And now you have a collection of your object. And with it you can do what you want