Tips on how to parse JSON in Swift utilizing Codable protocol?

0
14
Tips on how to parse JSON in Swift utilizing Codable protocol?


JSON parsing

Now, after the quick intro, let’s dive in and get some actual faux JSON knowledge from the JSONPlaceholder internet service. I’ll place the entire thing proper right here, you may 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 = strive 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 may see downloading and parsing JSON from the net is a very easy job. This entire code snippet is round 50 traces 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 straight from the JSON construction with these wonderful Xcode extensions.

LEAVE A REPLY

Please enter your comment!
Please enter your name here