Swift:
Trabalhando com JSON

Como Fazer:

Em Swift, você usa JSONDecoder para converter JSON em modelos Swift e JSONEncoder para fazer o contrário. Suponhamos que você tem um JSON representando um usuário:

let jsonString = """
{
    "nome": "João",
    "idade": 28,
    "email": "joao@example.com"
}
"""

struct Usuario: Codable {
    var nome: String
    var idade: Int
    var email: String
}

let jsonData = jsonString.data(using: .utf8)!
let decoder = JSONDecoder()

do {
    let usuario = try decoder.decode(Usuario.self, from: jsonData)
    print(usuario)
} catch {
    print(error.localizedDescription)
}

Se tudo der certo, verás algo assim no console:

Usuario(nome: "João", idade: 28, email: "[email protected]")

Para converter um modelo Swift em JSON, use JSONEncoder:

let encoder = JSONEncoder()
if let data = try? encoder.encode(usuario), 
   let jsonString = String(data: data, encoding: .utf8) {
    print(jsonString)
}

E no console:

{"nome":"João","idade":28,"email":"[email protected]"}

Mergulho Profundo:

JSON é baseado em JavaScript, mas é independente de linguagem, usável em muitas plataformas. Surgiu na década de 2000 como uma alternativa ao XML, sendo mais enxuto e fácil de utilizar. Alternativas modernas ao JSON incluem BSON e Protocol Buffers, cada um com suas vantagens em performance e recursos. Ao trabalhar com Swift, o protocolo Codable facilita a serialização de modelos, mas não esqueça de lidar com os erros que podem surgir ao decodificar JSON que não corresponde aos modelos Swift esperados.

Veja Também: