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

Swift에서 ObjectMapper는 매우 편리한 JSON 매핑 라이브러리입니다. 이를 사용하여 JSON 데이터를 Swift 배열로 매핑하는 방법을 알아보겠습니다.

  1. ObjectMapper 설치하기

먼저, ObjectMapper를 설치해야 합니다. Cocoapods를 사용하는 경우, Podfile에 다음을 추가하고 pod install 명령을 실행합니다.

pod 'ObjectMapper'
  1. ObjectMapper를 사용하여 JSON 배열로 매핑하기

JSON 데이터를 Swift 배열로 매핑하기 위해서는 ObjectMapper를 사용하는 클래스나 구조체가 필요합니다. 예를 들어, 다음과 같은 JSON 데이터가 있다고 가정해봅시다.

[
    {
        "id" : 1,
        "name" : "John"
    },
    {
        "id" : 2,
        "name" : "Jane"
    }
]

그리고 아래와 같이 User라는 구조체를 만들어줍니다.

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

위의 코드에서 Mappable은 ObjectMapper가 요구하는 프로토콜입니다. User 구조체의 idname 속성은 JSON 데이터의 키와 일치해야 합니다.

이제 다음과 같이 ObjectMapper를 사용하여 JSON 데이터를 배열로 매핑할 수 있습니다.

import ObjectMapper

let jsonString = "JSON 데이터 문자열"
if let users = Mapper<User>().mapArray(JSONString: jsonString) {
    // users 배열 사용하기
}

위의 코드에서 JSONString은 매핑할 JSON 데이터의 문자열 표현입니다.

  1. 매핑 결과 사용하기

매핑한 배열은 특정한 구조체나 클래스의 인스턴스 배열로 저장됩니다. 따라서 users 배열에 접근하여 매핑 결과를 사용할 수 있습니다. 예를 들어, 다음과 같이 users 배열을 반복하면서 각 사용자의 이름을 출력할 수 있습니다.

for user in users {
    if let name = user.name {
        print(name)
    }
}

위의 예제에서는 ObjectMapper를 사용하여 JSON 데이터를 배열로 매핑하는 방법을 알아보았습니다. ObjectMapper는 다양한 기능을 제공하므로, 필요에 따라 추가적인 설정을 할 수도 있습니다. 자세한 내용은 ObjectMapper의 문서를 참조해주세요.

참고 자료: