[swift] ObjectMapper의 옵셔널 매핑 시스템을 이용하여 JSON 데이터의 값이 없는 경우 기본값을 제공하는 방법은 무엇인가요?
ObjectMapper는 JSON 데이터를 모델 객체로 매핑하는 데 사용되는 오픈 소스 라이브러리입니다. 이 라이브러리에서는 매핑 시에 옵셔널 매핑 시스템을 제공하여 값이 없는 경우 기본값을 제공할 수 있습니다.
예를 들어, 아래와 같은 JSON 데이터가 있다고 가정해봅시다.
let json = """
{
"name": "John Doe",
"age": 30
}
"""
우리는 이 JSON 데이터를 다음과 같이 매핑하는 모델 클래스를 만들 수 있습니다.
```swift
import ObjectMapper
class Person: Mappable {
var name: String?
var age: Int?
// ObjectMapper에서 호출되는 initializer
required init?(map: Map) {}
// ObjectMapper에서 값을 매핑할 때 호출되는 메서드
func mapping(map: Map) {
name <- map["name"]
age <- map["age"]
}
}
만약 JSON 데이터에 “name” 필드만 존재하고 “age” 필드가 누락되었다면, 기본적으로 “age”의 매핑값은 nil
이 될 것입니다. 그러나 우리는 nil
대신 기본값을 제공하고 싶은 경우에는 다음과 같이 Map
객체에 default
속성을 사용하여 기본값을 설정할 수 있습니다.
import ObjectMapper
class Person: Mappable {
var name: String?
var age: Int?
required init?(map: Map) {}
func mapping(map: Map) {
name <- map["name"]
age <- map["age", default: 0] // 기본값으로 0을 사용
}
}
이렇게 설정하면, JSON 데이터에 “age” 필드가 존재하지 않는 경우에도 Person
객체의 age
속성은 0으로 초기화됩니다.
참고 자료: