[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으로 초기화됩니다.

참고 자료: