Swift에서는 ObjectMapper라는 라이브러리를 사용하여 JSON 데이터를 객체로 변환하거나, 객체를 JSON 데이터로 변환할 수 있습니다. 이번에는 ObjectMapper를 사용하여 객체의 속성을 돈 단위로 변환하는 방법에 대해 알아보겠습니다.
ObjectMapper 라이브러리 설치
먼저 ObjectMapper를 설치해야 합니다. Swift Package Manager를 사용한다면 Package.swift
파일에 다음과 같이 추가합니다.
.package(url: "https://github.com/tristanhimmelman/ObjectMapper.git", from: "4.2.0")
CocoaPods를 사용한다면 Podfile
에 다음과 같이 추가합니다.
pod 'ObjectMapper', '~> 4.2'
그리고 터미널에서 swift package update
(Swift Package Manager) 또는 pod install
(CocoaPods) 명령을 실행하여 라이브러리를 설치합니다.
돈 단위 변환 함수 구현
이제 돈 단위 변환을 위한 함수를 구현해보겠습니다. 예를 들어, JSON 데이터에서 “price”라는 속성을 읽어와서 센트 단위에서 달러 단위로 변환하고 싶다고 가정해봅시다.
import ObjectMapper
class Product: Mappable {
var name: String?
var price: Double?
required init?(map: Map) {}
func mapping(map: Map) {
name <- map["name"]
price <- (map["price"], CentToDollarTransform())
}
}
class CentToDollarTransform: TransformType {
typealias Object = Double
typealias JSON = Int
func transformFromJSON(_ value: Any?) -> Double? {
if let cents = value as? Int {
return Double(cents) / 100
}
return nil
}
func transformToJSON(_ value: Double?) -> Int? {
if let dollars = value {
return Int(dollars * 100)
}
return nil
}
}
위의 예제에서는 ObjectMapper의 TransformType
프로토콜을 구현한 CentToDollarTransform
클래스를 사용하여 센트 단위를 돈 단위로 변환합니다. Product
클래스의 price
속성에 CentToDollarTransform
을 사용하여 JSON 데이터의 “price” 속성 값을 변환하도록 매핑합니다.
돈 단위 변환 사용
이제 ObjectMapper를 사용하여 돈 단위 변환을 적용한 객체를 생성해보겠습니다.
import ObjectMapper
let json = """
{
"name": "iPhone",
"price": 9999
}
"""
if let product = Mapper<Product>().map(JSONString: json) {
print(product.name) // "iPhone"
print(product.price) // 99.99
}
위의 예제에서는 JSON 문자열을 사용하여 Product
객체를 생성하고, 변환된 돈 단위 값을 확인합니다. “price” 속성의 값이 9999에서 99.99로 변환된 것을 확인할 수 있습니다.
결론
Swift에서 ObjectMapper를 사용하여 객체의 속성을 돈 단위로 변환하는 방법에 대해 알아보았습니다. ObjectMapper를 사용하면 편리하게 JSON 데이터와 객체 사이의 변환 작업을 수행할 수 있습니다. 돈 단위 변환이 필요한 경우에는 TransformType
프로토콜을 구현하여 원하는 변환 작업을 수행할 수 있습니다.