[swift] ObjectMapper를 사용하여 JSON 데이터를 디코딩하는 방법은?

JSON 데이터를 디코딩하는 것은 많은 앱 개발 과정에서 필요한 작업입니다. Swift에서 ObjectMapper는 JSON 데이터를 쉽게 디코딩할 수 있는 매우 강력한 라이브러리입니다. 이제 ObjectMapper를 사용하여 JSON 데이터를 디코딩하는 방법을 알아보겠습니다.

ObjectMapper 설치하기

가장 먼저 ObjectMapper를 프로젝트에 설치해야 합니다. ObjectMapper는 CocoaPods를 통해 설치할 수 있습니다. Podfile에 다음 줄을 추가하고 pod install 명령어를 실행하세요.

pod 'ObjectMapper'

모델 클래스 생성하기

JSON 데이터를 디코딩하기 위해 먼저 해당 데이터와 일치하는 모델 클래스를 만들어야 합니다. 예를 들어, 다음과 같은 JSON 데이터가 있다고 가정해봅시다.

{
  "firstName": "John",
  "lastName": "Doe",
  "age": 30
}

이 데이터는 다음과 같은 Swift 모델 클래스로 나타낼 수 있습니다.

import Foundation
import ObjectMapper

class Person: Mappable {
    var firstName: String?
    var lastName: String?
    var age: Int?

    required init?(map: Map) {}

    func mapping(map: Map) {
        firstName <- map["firstName"]
        lastName <- map["lastName"]
        age <- map["age"]
    }
}

위의 코드에서 Mappable 프로토콜을 채택한 Person 클래스를 만들었습니다. firstName, lastName, age는 JSON 데이터와 일치하는 속성입니다. mapping(map:) 함수를 사용하여 각 속성을 JSON 키와 매핑하고(<- 연산자를 사용), init?(map:) 함수를 사용하여 초기화합니다.

JSON 데이터 디코딩하기

이제 ObjectMapper를 사용하여 JSON 데이터를 디코딩할 수 있습니다. 다음은 디코딩하는 방법입니다.

import ObjectMapper

let jsonString = """
{
  "firstName": "John",
  "lastName": "Doe",
  "age": 30
}
"""

if let person = Mapper<Person>().map(JSONString: jsonString) {
    print(person.firstName) // John
    print(person.lastName) // Doe
    print(person.age) // 30
}

위의 예제에서는 JSONString 파라미터를 사용하여 JSON 문자열을 Person 모델 클래스로 디코드했습니다. Mapper<Person>().map(JSONString: jsonString) 코드는 주어진 JSON 데이터를 Person 객체로 변환합니다.

결론

이제 ObjectMapper를 사용하여 JSON 데이터를 디코딩하는 방법을 알게 되었습니다. ObjectMapper는 매우 강력하며 유연한 JSON 디코딩을 제공합니다. 디코딩 과정에서 에러 핸들링 등 다양한 기능을 제공하기 때문에, 객체간의 변환 작업을 간단하게 처리하는 데 큰 도움이 될 것입니다.

자세한 내용은 ObjectMapper GitHub 페이지(링크)를 참조하세요.