JSON stands for JavaScript Object Notation. It’s a popular text-based data format used everywhere for representing structured data. Almost every programming language supports it with Swift being no exception.
In Swift, parsing JSON is a common necessity. Luckily, working with JSON is easy in Swift. It doesn’t even require setting up any external dependencies.
To convert this JSON to a Swift object, let’s store this JSON data in a structure.
To start off, let’s create a structure that conforms to the Decodable protocol to store all the listed properties found in the JSON data:
struct Slip:Codable{
var slip:Advice
}
struct Advice:Codable{
var id:Int
var advice:String
}
Key terms
- URLSession An object that coordinates a group of related, network data transfer tasks.
- JSONDecoder An object that decodes instances of a data type from JSON objects.
Creating getSlip function to fetch data from an Url
let url = "https://api.adviceslip.com/advice"
func getSlip(from url:String){
URLSession.shared.dataTask(with: URL(string: url)!, completionHandler:{ data,response,error in
guard let data = data else
{
print("Something went wrong")
return
}
var result:Slip?
do{
result = try JSONDecoder().decode(Slip.self,from:data)
}catch{
print("Failed decoding data")
}
guard let json = result else{
return
}
print("ID: \(json.slip.id)")
print("Advice: \(json.slip.advice)")
}).resume()
}
getSlip(from: url)
//ID: 134
//Advice: The person who never made a mistake never made anything.
Top comments (0)