[swift] ObjectMapper를 사용하여 JSON 데이터의 필드를 실수로 변환하는 방법은?
Swift에서 ObjectMapper는 JSON 데이터를 객체로 변환하고 객체를 JSON 데이터로 직렬화하는 데 사용되는 라이브러리입니다. 때때로 JSON 데이터에서 필드를 가져올 때 실수 형식으로 변환해야 할 수도 있습니다.
이를 위해 ObjectMapper에서 사용할 수 있는 몇 가지 방법이 있습니다.
map
메서드와 함께TransformOf
를 사용하기 ```swift import ObjectMapper
class MyObject: Mappable { var floatValue: Double?
required init?(map: Map) {
}
func mapping(map: Map) {
floatValue <- (map["floatValue"], TransformOf<Double, String>(fromJSON: { (value: String?) -> Double? in
// JSON 데이터 값을 Double 형식으로 변환
return Double(value ?? "")
}, toJSON: { (value: Double?) -> String? in
// Double 값을 JSON 데이터 형식으로 변환
return value.map { String($0) }
}))
} }
let jsonString = “{"floatValue": "3.14"}”
if let myObject = Mapper
2. `TransformOf`를 사용하여 ObjectMapper 확장하기
```swift
import ObjectMapper
extension TransformOf {
public func convertFromJSON(value: Any?) -> Object? {
if let stringValue = value as? String, let convertedValue = Object(stringValue) {
return convertedValue
}
return nil
}
public func convertToJSON(value: Object?) -> Any? {
return value.map { $0.description }
}
}
class MyObject: Mappable {
var floatValue: Double?
required init?(map: Map) {
}
func mapping(map: Map) {
floatValue <- (map["floatValue"], StringToDoubleTransform())
}
}
let jsonString = "{\"floatValue\": \"3.14\"}"
if let myObject = Mapper<MyObject>().map(JSONString: jsonString) {
print(myObject.floatValue) // Output: Optional(3.14)
}
위의 두 가지 방법은 ObjectMapper를 사용하여 JSON 데이터의 필드를 실수로 변환하는 방법입니다. 선택적으로 특정 필드에 대해 커스텀 변환을 적용할 수 있습니다. 필요에 따라 이 코드를 수정하여 사용하십시오.
참고 자료: