[ad_1]
JSON parsing
Now, after the quick intro, let’s dive in and get some actual pretend JSON information from the JSONPlaceholder internet service. I’ll 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 Put up: 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) { information, 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 information = information else {
print("Error: lacking information")
PlaygroundPage.present.finishExecution()
}
do {
let decoder = JSONDecoder()
let posts = strive decoder.decode([Post].self, from: information)
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 net is a very easy process. This entire code snippet is round 50 strains of coode. In fact it is only a proof of idea, nevertheless it 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 information in Swift magical. 💫
To save some typing, you can too generate the ultimate objects instantly from the JSON construction with these wonderful Xcode extensions.
[ad_2]
