API 요청 후 서버에서 JSON 데이터를 응답받으면, Swift에서 Codable을 사용해 간편하게 변환할 수 있다.
이 글에서는 Codable을 활용하여 JSON 데이터를 Swift 구조체로 변환하는 방법을 정리한다.
서버에서 받은 JSON 데이터를 Swift에서 쉽게 다룰 수 있도록 구조체로 변환해야 한다.
{
"id": 1,
"username": "춘장",
"email": "meow@example.com"
}
Codable을 활용한 JSON 디코딩
Codable 구조체 정의
Codable은 Encodable과 Decodable을 포함하는 프로토콜
Decodable을 활용해 JSON → Swift 구조체 변환 가능
struct User: Codable { let id: Int let username: String let email: String }
JSON 디코딩
let jsonData = """ { "id": 1, "username": "춘장", "email": "meow@example.com" } """.data(using: .utf8)! do { let user = try JSONDecoder().decode(User.self, from: jsonData) print(user.username) // 춘장 } catch { print("Decoding failed: \(error)") }
JSON 인코딩
let user = User(id: 1, username: "춘장", email: "meow@example.com") do { let jsonData = try JSONEncoder().encode(user) let jsonString = String(data: jsonData, encoding: .utf8) print(jsonString!) } catch { print("Encoding failed: \(error)") }