Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

J

[Swift] JSONEncoder.KeyEncodingStrategy 본문

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] map  (0) 2024.04.19
[Swift] init  (0) 2024.04.18
[Swift] weak, unowned  (0) 2024.04.18