[swift] ObjectMapper를 사용하여 JSON 데이터에 중첩된 객체를 매핑하는 방법은?

Swift에서 JSON 데이터를 매핑하려면 ObjectMapper 라이브러리를 사용할 수 있습니다. ObjectMapper는 Swift 객체와 JSON 데이터 간의 변환을 쉽게 할 수 있는 강력한 도구입니다.

JSON 데이터에 중첩된 객체를 매핑하기 위해 다음 단계를 따를 수 있습니다:

1. ObjectMapper 라이브러리 설치

먼저, Xcode 프로젝트에 ObjectMapper를 설치해야 합니다. 가장 일반적인 방법은 CocoaPods를 사용하는 것입니다. Podfile에 다음 내용을 추가한 후, 터미널에서 pod install 명령어를 실행하면 ObjectMapper가 설치됩니다.

pod 'ObjectMapper'

2. 모델 클래스 생성

중첩된 객체에 매핑할 Swift 모델 클래스를 생성합니다. 예를 들어, 사용자 정보를 담는 User 클래스와 주소 정보를 담는 Address 클래스가 있다고 가정해보겠습니다.

import Foundation
import ObjectMapper

class User: Mappable {
    var name: String?
    var age: Int?
    var address: Address?

    required init?(map: Map) {}

    func mapping(map: Map) {
        name <- map["name"]
        age <- map["age"]
        address <- map["address"]
    }
}

class Address: Mappable {
    var street: String?
    var city: String?

    required init?(map: Map) {}

    func mapping(map: Map) {
        street <- map["street"]
        city <- map["city"]
    }
}

Mappable 프로토콜을 구현하고, mapping 메서드에서 JSON 데이터와 클래스 프로퍼티를 매핑합니다.

3. JSON 데이터 매핑

다음으로, ObjectMapper를 사용하여 JSON 데이터를 모델 클래스에 매핑합니다. 아래는 예시 JSON 데이터와 그에 대한 매핑 코드입니다.

import ObjectMapper

let json = """
{
    "name": "John",
    "age": 25,
    "address": {
        "street": "123 ABC Street",
        "city": "New York"
    }
}
"""

// JSON 데이터를 모델 클래스에 매핑
if let user = User(JSONString: json) {
    print(user.name) // John
    print(user.age) // 25
    print(user.address?.street) // 123 ABC Street
    print(user.address?.city) // New York
}

User(JSONString: json)을 호출하여 JSON 데이터를 모델 클래스에 매핑합니다. 그 후, 매핑된 객체의 프로퍼티에 접근하여 값을 확인할 수 있습니다.

이렇게 ObjectMapper를 사용하여 JSON 데이터에 중첩된 객체를 매핑할 수 있습니다. ObjectMapper는 훌륭한 라이브러리이며, JSON 데이터와 Swift 객체 간의 변환 작업을 단순화하여 개발 과정을 효율적으로 만들어줍니다.

참고: