JSON 데이터를 Swift 객체로 매핑하기 위해 ObjectMapper를 사용하는 방법을 알아보겠습니다. ObjectMapper는 JSON과 Swift 클래스 간의 데이터 매핑을 쉽게 할 수 있도록 도와주는 라이브러리입니다.
먼저 ObjectMapper를 설치하기 위해 Swift Package Manager를 사용하거나 CocoaPods나 Carthage를 통해 프로젝트에 추가합니다. 이후 ObjectMapper를 import 할 수 있도록 추가해주세요.
import ObjectMapper
이제 ObjectMapper를 사용하여 JSON 데이터의 필드를 특정 타입으로 매핑하는 방법을 살펴보겠습니다. 예를 들어, 다음과 같은 JSON 데이터가 있다고 가정해봅시다.
{
"name": "John",
"age": 30,
"email": "john@example.com"
}
해당 JSON 데이터를 매핑하기 위해 다음과 같이 Swift 클래스를 만들어줍니다.
class User: Mappable {
var name: String?
var age: Int?
var email: String?
required init?(map: Map) {
}
func mapping(map: Map) {
name <- map["name"]
age <- map["age"]
email <- map["email"]
}
}
위의 예시에서는 User라는 클래스를 만들어 name, age, email 필드를 정의했습니다. 해당 클래스는 Mappable 프로토콜을 구현하고, init?(map: Map) 메소드와 mapping(map: Map) 메소드를 정의합니다.
init?(map: Map) 메소드는 매핑 전 초기화를 위해 사용되며, mapping(map: Map) 메소드는 실제 매핑을 위해 사용됩니다. mapping(map: Map) 메소드에서는 ObjectMapper의 <- 연산자를 활용하여 JSON 데이터와 필드를 매핑합니다.
이제 ObjectMapper를 통해 JSON 데이터와 User 클래스를 매핑해보겠습니다.
let jsonString = """
{
"name": "John",
"age": 30,
"email": "john@example.com"
}
"""
if let user = Mapper<User>().map(JSONString: jsonString) {
print(user.name) // John
print(user.age) // 30
print(user.email) // john@example.com
}
위의 예시에서는 Mapper의 map(JSONString:) 메소드를 사용하여 jsonString을 User 클래스에 매핑합니다. 매핑된 User 객체를 이용하여 필드에 접근하고 값을 출력해볼 수 있습니다.
이렇게 ObjectMapper를 사용하여 JSON 데이터의 필드를 특정 타입으로 매핑할 수 있습니다. ObjectMapper는 다양한 매핑 기능을 제공하므로 필요에 맞게 활용할 수 있습니다. ObjectMapper의 자세한 사용법은 공식 문서를 참고하시기 바랍니다.
참고 자료: