Codable과 ObjectMapper

Allie·2022년 10월 19일
0

사전과제 전형을 하며 받은 피드백 중 한가지가 ObjectMapper를 사용해보라는 것이었다.

그래서 알아보는, ObjectMapper란?

ObjectMapper는 JSON String을 parsing할 때 사용하는 외부 라이브러리이다.
Mappable 프로토콜을 채택해야하며, 아래와 같은 방법으로 사용할 수 있다.

import ObjectMapper

struct Weather: Mappable {
    var temp: Double?
    var feelsLike: String?
    var tempMin: String?
    var tempMax: String?
    
    init?(map: Map) { }
    
    mutating func mapping(map: Map) {
        temp <- map["temp"]
        feelsLike <- map["feels_like"]
        tempMin <- map["temp_min"]
        tempMax <- map["temp_max"]
    }
}

ObjectMapper

Codable과의 차이?

ObjectMapper와 다르게 mapping 메서드를 작성해 줄 필요가 없고, 대신에 CodingKey 프로토콜을 채택한 열거형을 만들어 모델의 프로퍼티와 같은 케이스를 작성해야 한다.
모델의 프로퍼티와 JSON의 프로퍼티가 같을 경우를 제외하고는 언하는 키 값을 case에 적어주고 기존 JSON의 프로퍼티를 대입해주면 된다.

import Foundation

struct Weather: Codable {
    var temp: Double?
    var feelsLike: String?
    var tempMin: String?
    var tempMax: String?
    
    enum CodingKeys: String, CodingKey {
        case temp
        case feelsLike = "feels_like"
        case tempMin = "temp_min"
        case tempMax = "temp_max"
    }
}

개인적인 생각이지만, 외부 라이브러리이기도 하고 Codable과 비교했을 때 크게 이점이 되는 부분이 없다고 생각되어 나는 앞으로도 Codable을 사용할 것 같다. ㅎㅎ..

참고

War on JSON in Swift (Object Mapper vs Codable)

profile
게발자🦀 되는 중.. 궁김하다.. 궁김해..

0개의 댓글