[swift] ObjectMapper를 사용하여 Swift 객체의 속성을 복합 데이터 타입으로 매핑하는 방법은 무엇인가요?
- 복합 데이터 타입 정의하기: 먼저, 매핑하려는 복합 데이터 타입을 정의해야 합니다. 예를 들어, JSON에서 배열 형식의 데이터를 매핑하려면
[Object]
와 같은 배열 타입으로 정의할 수 있습니다.
import ObjectMapper
class User: Mappable {
var name: String?
var age: Int?
var friends: [Friend]?
required init?(map: Map) {}
func mapping(map: Map) {
name <- map["name"]
age <- map["age"]
friends <- map["friends"]
}
}
class Friend: Mappable {
var name: String?
var age: Int?
required init?(map: Map) {}
func mapping(map: Map) {
name <- map["name"]
age <- map["age"]
}
}
- ObjectMapper를 사용하여 매핑하기:
ObjectMapper
는 매핑을 위한 편리한 메소드를 제공합니다.map
메소드를 사용하여 JSON 데이터를 객체로 매핑할 수 있습니다.
import ObjectMapper
// JSON 데이터
let json = """
{
"name": "John",
"age": 28,
"friends": [
{
"name": "Alice",
"age": 25
},
{
"name": "Bob",
"age": 30
}
]
}
"""
if let user = Mapper<User>().map(JSONString: json) {
// 매핑된 결과 사용하기
print(user.name) // John
print(user.age) // 28
print(user.friends?.count) // 2
print(user.friends?.first?.name) // Alice
print(user.friends?.first?.age) // 25
}
위 예제에서는 JSONString:
을 사용하여 JSON 데이터를 객체로 매핑하였습니다. 필요한 경우, mapObject
메소드를 사용하여 Dictionary나 JSON 데이터로 매핑할 수도 있습니다.
이와 같이 ObjectMapper를 사용하면 Swift 객체의 속성을 복합 데이터 타입으로 편리하게 매핑할 수 있습니다. 자세한 내용은 ObjectMapper의 공식 문서를 참고하시기 바랍니다.
- ObjectMapper GitHub: https://github.com/tristanhimmelman/ObjectMapper