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 페이지(링크)를 참조하세요.