iOS/Swift 상식

Codable

HJ39 2023. 6. 26. 00:52

Codable = Encodable + Decodable

Encodable은 data를 Encoder에서 변환해주려는 프로토콜로 바꿔주는 것

Decodable은 data를 원하는 모델로 Decode 해주는 것

 

 

Codable은 프로토콜이라서 Struct, enum, class 전부 채택 가능하다.

struct User: Codable {
    enum CodingKeys: String,CodingKey {
        case id
        case name
        case birth
        case phoneNum = "phone_num"
    }

    let id: Int
    let name: String
    let birth: String
    let phoneNum: String
}

 

Enum CodingKeys

CodingKeys는 json Key에서 사용하는 이름이 아닌 내가 원하는 이름으로 사용할 수 있게 하는 프로토콜이다.

위 예제에서 json에 실제로 사용하는 값들은 id, name, birth, phone_num이지만 내가 지정한 이름은 id, name birth, phoneNum이다.

 

 

※ 참고