HomeiOS DevelopmentTips on how to parse JSON in Swift utilizing Codable protocol?

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 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.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments