Swift

[Swift] JSONEncoder.KeyEncodingStrategy

yujaehui 2024. 6. 27. 23:11

네트워크 통신을 진행하면서 body를 전달할 때 인코딩 과정이 필요하다는 것은 알 것이다.

struct 형태의 데이터를 json으로 인코딩해서 서버에 전달해야 하기 때문이다.

그런데 여기서 json으로 인코딩할 때 어떻게 할 것인지를 정할 수 있는 enum이 존재한다.

그게 바로 JSONEncoder.KeyEncodingStrategy이다.


예시 struct를 한 가지 두고 설명을 해보겠다.

struct Person {
    let name: String
    let birthDay: Date
}

첫 번째 방법은 case convertToSnakeCase 이다.

이는 swift에서 camelCase로 작성된 것들을 snakeCase로 변경한다.

즉 birthDay → birth_day, 이렇게 변환하여 전달한다.

 

두번째 방법은 case useDefaultKeys 이다.

사실 사용자가 작성한 그대로 전달한다는 것을 의미한다.

즉, birthDay → birthDay, 이렇게 변환하지 않은 채로 전달한다.


 

사용 방법은 간단하다.

let encoder = JSONEncoder()
encoder.keyEncodingStrategy = .convertToSnakeCase

let encoder = JSONEncoder()
encoder.keyEncodingStrategy = .useDefaultKeys

'Swift' 카테고리의 다른 글

[Swift] @available  (0) 2024.05.19
[Swift] #available  (0) 2024.05.19
[Swift] 버전 대응 Wrapper  (0) 2024.05.19
[Swift] Property Wrapper  (0) 2024.04.29
[Swift] Opaque Type (some 키워드)  (0) 2024.04.19