JSON parsing
Now, after the quick intro, let’s dive in and get some actual faux JSON knowledge from the JSONPlaceholder internet service. I will place the entire thing proper right here, you’ll be able to choose it, copy and paste right into a Swift playground file.
import Basis
import PlaygroundSupport
PlaygroundPage.present.needsIndefiniteExecution = true
struct Submit: Codable {
enum CodingKeys: String, CodingKey {
case id
case title
case physique
case userIdentifier = "userId"
}
let id: Int
let title: String
let physique: String
let userIdentifier: Int
}
let url = URL(string: "https://jsonplaceholder.typicode.com/posts")!
URLSession.shared.dataTask(with: url) { knowledge, response, error in
if let error = error {
print("Error: (error.localizedDescription)")
PlaygroundPage.present.finishExecution()
}
guard let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 else {
print("Error: invalid HTTP response code")
PlaygroundPage.present.finishExecution()
}
guard let knowledge = knowledge else {
print("Error: lacking knowledge")
PlaygroundPage.present.finishExecution()
}
do {
let decoder = JSONDecoder()
let posts = attempt decoder.decode([Post].self, from: knowledge)
print(posts.map { $0.title })
PlaygroundPage.present.finishExecution()
}
catch {
print("Error: (error.localizedDescription)")
PlaygroundPage.present.finishExecution()
}
}.resume()
As you’ll be able to see downloading and parsing JSON from the online is a very easy job. This complete code snippet is round 50 strains of coode. After all it is only a proof of idea, but it surely works and you do not want any dependency. It is pure Swift and Basis.
The Codable protocol – which is definitely a compound typealias from Encodable & Decodable protocols – makes the method of parsing JSON knowledge in Swift magical. 💫
To save some typing, you may as well generate the ultimate objects instantly from the JSON construction with these wonderful Xcode extensions.