적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Swift iOS 앱 개발/Swift

[Swift] Codable - CodingKey

hongssup_ 2022. 11. 24. 17:02
반응형

CodingKey

A type that canbe used as a key for encoding and decoding. 

인코딩 및 디코등을 위한 키로 사용될 수 있는 타입

protocol CodingKey : CustomDebugStringConvertible, CustomStringConvertible, Sendable

 

CodingKey 사용하는 경우

Swift에서는 변수나 상수를 선언할 때 카멜케이스를 사용한다.

그런데 예를 들어 JSON 에서 스네이크 케이스를 사용하는 경우, 다음과 같이 내려받은 JSON 키 "actual_price" 와 Items 구조체에서 선언해준 "actualPrice" 키가 일치하지 않을 수 있다.

이런 경우 CodingKey를 사용하여 키를 변환(?) 연결(?) 해주면 문제없이 디코딩해줄 수 있다. 

struct Items: Codable {
    let id: Int
    let name: String?
    let price: Int?
    let actualPrice: Int?
    
    enum CodingKeys: String, CodingKey {
        case id, name, price
        case actualPrice = "actual_price"
    }
}

 

 

728x90
반응형

'Swift iOS 앱 개발 > Swift' 카테고리의 다른 글

[Swift] Class의 성능을 향상시킬 수 있는 방법  (0) 2022.12.02
[Swift] Optional 옵셔널이란?  (0) 2022.12.01
oop vs pop  (0) 2022.11.17
[Swift] Generic  (0) 2022.11.16
[Swift Layout] FlexLayout  (0) 2022.10.04