This is what I have for my class CurrentPlayers.
CurrentPlayers {
var photoUrl: String
var position: String
var team: String
var yahooName: String
var birthCity: String
var status: String
init(photoUrl: String, position: String, team: String, yahooName: String, birthCity: String, status: String) {
self.yahooName = yahooName
self.photoUrl = photoUrl
self.position = position
self.team = team
self.birthCity = birthCity
self.status = status
}
}
My parseJson func performs a get request for an API and it populates the array with JSON data.
func parseJson() {
cPlayerArr = []
let url = //url I am using to get data from
var request = URLRequest(url: URL(string: url)!)
request.httpMethod = "GET"
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration, delegate: nil, delegateQueue: OperationQueue.main)
let task = session.dataTask(with: request) { (data, response, error) in
if (error != nil) {
print("error")
} else {
do {
let fetchedData = try JSONSerialization.jsonObject(with: data!, options: .mutableLeaves) as! NSArray
for eachPlayerNow in fetchedData {
let eachPlayer = eachPlayerNow as! [String: Any]
let player = eachPlayer["YahooName"] as?
String
let position = eachPlayer["Position"] as? String
let photoUrl = eachPlayer["PhotoUrl"] as? String
let team = eachPlayer["Team"] as?
String
let birthCity = eachPlayer["BirthCity"] as? String
let status = eachPlayer["Status"]
as? String
self.cPlayerArr.append(CurrentPlayers.init(photoUrl: photoUrl ?? "", position: position ?? "", team: team ?? "", yahooName: player ?? "", birthCity: birthCity ?? "", status: status ?? ""))
}
self.collections.reloadData().			
}
catch {
print("error 2")
}
}
}
task.resume()
}