[swift] ObjectMapper를 사용해 다른 데이터 타입으로 매핑하는 방법은?

앱 개발 중에 종종 서로 다른 데이터 타입 간에 변환 작업이 필요할 수 있습니다. Swift에서 ObjectMapper를 사용하면 간단하게 매핑 작업을 수행할 수 있습니다.

예를 들어, JSON 데이터를 받아와서 Swift의 struct나 class 객체로 변환해야 하는 경우가 있을 수 있습니다. ObjectMapper를 사용하면 JSON 데이터의 키와 Swift 객체의 프로퍼티를 매핑할 수 있습니다.

먼저, ObjectMapper를 프로젝트에 추가해야 합니다. CocoaPods를 사용하는 경우, Podfile에 다음과 같이 ObjectMapper를 추가합니다.

pod 'ObjectMapper', '~> 4.2'

그런 다음, .swift 파일에서 다음과 같이 ObjectMapper를 import합니다.

import ObjectMapper

이제, JSON 데이터를 매핑할 Swift 객체를 생성합니다. 객체의 프로퍼티와 JSON 데이터의 키를 매핑해야 합니다. 다음은 사용자 정보를 담는 Swift 객체와 JSON 데이터가 주어진 경우의 예제입니다.

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

위의 예제에서 Mappable 프로토콜을 구현하는 것은 ObjectMapper에서 JSON 데이터를 매핑하기 위한 규칙입니다. init?(map: Map)은 매핑을 위한 초기화 메서드이고, mapping(map: Map)은 프로퍼티의 매핑을 정의하는 메서드입니다.

매핑을 수행하기 위해서는 JSON 데이터를 Swift 객체로 변환해야 합니다. 다음은 ObjectMapper를 사용해 JSON 데이터를 매핑하는 예제입니다.

let json = """
    {
        "name": "John",
        "age": 25
    }
"""

if let user = Mapper<User>().map(JSONString: json) {
    print(user.name) // 출력: John
    print(user.age) // 출력: 25
}

JSON 데이터를 JSONString으로 전달하고 map(JSONString:) 메서드를 사용하여 매핑을 수행합니다. 매핑이 성공하면 변환된 Swift 객체를 얻을 수 있습니다.

이와 같이 ObjectMapper를 사용하면 다른 데이터 타입 간의 매핑 작업을 쉽게 수행할 수 있습니다. ObjectMapper는 다양한 매핑기능을 제공하므로 필요에 따라 사용할 수 있습니다. 추가적인 정보는 ObjectMapper의 공식 문서를 참고하시기 바랍니다.