JSON decode in Swift

JSON decode in Swift

Swift ha una modalità un pò differente rispetto ad altri linguaggi per fare il decode di JSON, in quanto usa molto le Struct.

Oggi vediamo un esempio usando le API SWAPI come test.

Nello specifico useremo questa, che ci da un bell'array di pianeti di Star Wars: https://swapi.co/api/planets/.

Quindi, partendo dalle API:

import Foundation

struct StarWarsResult: Codable {
    let results: [StarWarsPlanet]
}

struct StarWarsPlanet: Codable {
    let name: String
    let population: String
}

let data = try! Data.init(contentsOf: URL.init(string: "https://swapi.co/api/planets/")!)

do {
    let decoder: JSONDecoder = JSONDecoder.init()
    let res = try decoder.decode(StarWarsResult.self, from: data)
    for pl in res.results {
        print("Il pianeta \(pl.name), ha questa popolazione: \(pl.population)")
    }
} catch let e {
    print(e)
}

Abbiamo due Struct, di cui la prima è un array che contiene gli oggetti della seconda.

La seconda rispecchia ogni dato dei pianeti.

Questo quello che vedremo in console:

Il pianeta Alderaan, ha questa popolazione: 2000000000
Il pianeta Yavin IV, ha questa popolazione: 1000
Il pianeta Hoth, ha questa popolazione: unknown
Il pianeta Dagobah, ha questa popolazione: unknown
.........................

Enjoy!




Share

Commentami!

About Mattepuffo.com

Blog dedicato all'informatica e alla programmazione!
Tutti i contenuti di questo blog, tranne casi particolari, sono sotto licenza Licenza Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.5. .

2690 articoli
310 commenti
19 progetti
Altri link
  • About
  • Scrivimi
  • Copyright
  • Sitemap
  • matteo.ferrone@yahoo.it
  • GitHub
  • Privacy Policy