[swift] ObjectMapper를 사용하여 JSON 데이터의 키를 매핑하는 방법은?

JSON 데이터를 Swift 객체로 매핑할 때, ObjectMapper 라이브러리는 키 매핑을 간단하게 처리할 수 있도록 도와줍니다. ObjectMapper는 Swift에서 많이 사용되는 객체-JSON 매핑 라이브러리 중 하나로, JSON 데이터와 객체 간의 매핑을 쉽게 수행할 수 있습니다.

JSON 데이터의 키를 매핑하기 위해서는 ObjectMapper에서 제공하는 @objcMembers와 @objc 특성을 사용하여 Swift 객체를 Obj-C 호환 클래스로 선언해야 합니다. 이렇게 함으로써 ObjectMapper가 정확히 키를 인식하고 매핑할 수 있습니다.

아래는 ObjectMapper를 사용하여 JSON 데이터의 키를 매핑하는 예제입니다.

import ObjectMapper

@objcMembers
class User: NSObject, Mappable {
    var name: String!
    var age: Int!
    
    required init?(map: Map) {}
    
    func mapping(map: Map) {
        name <- map["json_key_name_for_name"]
        age <- map["json_key_name_for_age"]
    }
}

let jsonString = """
    {
        "json_key_name_for_name": "John Doe",
        "json_key_name_for_age": 25
    }
"""

if let user = User(JSONString: jsonString) {
    print(user.name) // Output: John Doe
    print(user.age) // Output: 25
}

위 코드에서 User 클래스는 Mappable 프로토콜을 준수하도록 선언되었습니다. ObjectMapper는 매핑을 수행하기 위해 mapping(map:) 메서드를 호출합니다. 이 메서드에서는 매핑할 JSON 데이터의 키와 객체의 속성을 매핑 연산자 <- 를 사용하여 연결해줍니다.

User 클래스를 사용하여 JSON 문자열을 객체로 변환할 때, ObjectMapper는 매핑 연산자에 설정된 키와 일치하는 JSON 데이터의 값들을 객체의 속성에 자동으로 매핑합니다.

위 예제를 실행하면 “John Doe”와 25가 출력됩니다. 이는 JSON 데이터의 “json_key_name_for_name” 키가 User 객체의 name 속성과 매핑되고, “json_key_name_for_age” 키가 User 객체의 age 속성과 매핑되었기 때문입니다.

이와 같이 ObjectMapper를 사용하면 JSON 데이터의 키를 매핑하는 작업을 쉽고 간단하게 처리할 수 있습니다. 따라서 Swift에서 JSON 데이터와 객체 간의 매핑이 필요한 경우, ObjectMapper를 사용해보세요.

참고 자료: