Codable을 사용할 때 JSON 키와 Swift 프로퍼티 이름이 다를 때 이를 연결(매핑)해주는 역할💡
Codable란??
Encodable + Decodable프로토콜- Swift 객체를 JSON으로 변환하거나(JSON 인코딩),
JSON을 Swift 객체로 변환하는(JSON 디코딩) 데 사용
// JSON
{
"id": 123,
"first_name": "Luna",
"last_name": "Park"
}
// Swift 객체
struct Person: Codable {
let id: Int
let firstName: String
let lastName: String
}
오류 발생🚨
"first_name"인데, firstName으로 작성했기 때문❗️CodingKey로 문제 해결👍// Swift 객체
struct Person: Codable {
let id: Int
let firstName: String
let lastName: String
// CodingKey 사용
enum CodingKeys: String, CodingKey {
case id
case firstName = "first_name"
case lastName = "last_name"
}
}
| Swift 속성명 | JSON 키 |
|---|---|
id | "id" (같으면 굳이 매핑 안 해도 됨) |
firstName | "first_name" |
lastName | "last_name" |
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
"first_name" → firstName으로 자동 매핑해줌CodingKeys로 따로 지정해야 함