[iOS] API 응답을 Swift Codable 구조체로 변환하는 방법

Swiftios
avatar
2025.02.19
·
2 min read

API 요청 후 서버에서 JSON 데이터를 응답받으면, Swift에서 Codable을 사용해 간편하게 변환할 수 있다.

이 글에서는 Codable을 활용하여 JSON 데이터를 Swift 구조체로 변환하는 방법을 정리한다.


서버에서 받은 JSON 데이터를 Swift에서 쉽게 다룰 수 있도록 구조체로 변환해야 한다.

{
    "id": 1,
    "username": "춘장",
    "email": "meow@example.com"
}

Codable을 활용한 JSON 디코딩

  1. Codable 구조체 정의

    • Codable은 Encodable과 Decodable을 포함하는 프로토콜

    • Decodable을 활용해 JSON → Swift 구조체 변환 가능

    struct User: Codable {
        let id: Int
        let username: String
        let email: String
    }
  2. 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)")
    }
  3. 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)")
    }






- 컬렉션 아티클