[swift] ObjectMapper를 사용하여 JSON 데이터를 다른 데이터 타입으로 변환하는 방법은?

JSON 데이터를 다른 데이터 타입으로 변환하는데는 ObjectMapper라는 유용한 라이브러리를 사용할 수 있습니다. ObjectMapper는 Swift에서 JSON 데이터를 쉽게 매핑할 수 있도록 도와주는 라이브러리로, 객체와 JSON 사이의 변환을 자동화합니다.

1. ObjectMapper 설치

가장 먼저 ObjectMapper를 설치해야 합니다. CocoaPods를 사용하는 경우, Podfile에 다음과 같이 추가합니다:

pod 'ObjectMapper'

그리고 터미널에서 다음 명령어를 실행하여 CocoaPods를 업데이트합니다:

$ pod install

2. JSON 데이터 모델 생성

다른 데이터 타입으로 변환하기 위해 먼저 JSON 데이터와 매칭될 모델 클래스를 생성해야 합니다. 예를 들어, 다음과 같은 JSON 데이터가 있다고 가정해봅시다:

{
  "name": "John Doe",
  "age": 30,
  "email": "johndoe@example.com"
}

해당 JSON 데이터와 매칭될 Swift 모델 클래스를 생성합니다:

import Foundation
import ObjectMapper

class User: Mappable {
    var name: String?
    var age: Int?
    var email: String?
    
    required init?(map: Map) {}
    
    func mapping(map: Map) {
        name <- map["name"]
        age <- map["age"]
        email <- map["email"]
    }
}

위의 예제에서 User 클래스는 Mappable 프로토콜을 채택하고, mapping(map:) 메서드를 구현했습니다. mapping(map:) 메서드 내에서는 ObjectMapper의 <- 연산자를 사용하여 JSON 데이터와 모델 속성을 매핑하고 있습니다.

3. ObjectMapper를 사용하여 변환하기

이제 ObjectMapper를 사용하여 JSON 데이터를 User 클래스로 변환하는 방법을 알아보겠습니다. 아래 예시 코드를 참고하세요:

import ObjectMapper

let json = """
{
  "name": "John Doe",
  "age": 30,
  "email": "johndoe@example.com"
}
"""

if let user = Mapper<User>().map(JSONString: json) {
    print(user.name) // John Doe
    print(user.age) // 30
    print(user.email) // johndoe@example.com
}

위의 예시 코드에서는 ObjectMapper의 map(JSONString:) 메서드를 사용하여 JSON 데이터를 User 클래스로 변환하고 있습니다. 변환된 객체를 이용하여 모델의 속성에 접근할 수 있습니다.

4. ObjectMapper의 추가 기능 활용하기

ObjectMapper는 강력한 기능을 많이 제공합니다. 예를 들어, JSON 데이터의 중첩된 객체, 배열 등을 매핑할 수 있고, JSON 데이터의 특정 속성을 모델에서 무시할 수도 있습니다. 더 자세한 사용법을 알고 싶다면 ObjectMapper의 공식 문서나 예제를 참고해보세요.

참고 자료