[swift] Swift ObjectMapper에서 제공하는 다양한 데이터 형식 변환 방법은?

Swift ObjectMapper는 Swift에서 JSON 데이터를 객체로 변환하는 라이브러리입니다. 이 라이브러리는 JSON을 Swift 클래스 또는 구조체에 매핑하고, 다양한 데이터 형식 사이의 변환을 쉽게 할 수 있도록 도와줍니다.

Swift ObjectMapper를 사용하여 데이터 형식을 변환하는 몇 가지 방법은 다음과 같습니다:

  1. JSON to Object 변환: ObjectMapper를 사용하면 JSON 데이터를 Swift 클래스 또는 구조체 객체로 변환할 수 있습니다. 이는 “map” 메서드를 사용하여 수행합니다. 아래는 예시 코드입니다:

    import ObjectMapper
    
    struct Person: Mappable {
        var name: String?
        var age: Int?
    
        init?(map: Map) {}
    
        mutating func mapping(map: Map) {
            name <- map["name"]
            age <- map["age"]
        }
    }
       
    let jsonString = "{\"name\":\"John\", \"age\":30}"
    let person = Mapper<Person>().map(JSONString: jsonString)
    
    print(person?.name) // John
    print(person?.age)  // 30
    

    JSON 데이터를 객체로 변환할 때 각 필드의 이름과 일치하는 속성에 자동으로 매핑됩니다.

  2. Object to JSON 변환: ObjectMapper를 사용하여 객체를 JSON 형식으로 변환할 수도 있습니다. 이는 “toJSON” 메서드를 사용하여 수행합니다. 예시 코드는 다음과 같습니다:

    let person = Person(name: "John", age: 30)
    let jsonString = Mapper().toJSONString(person)
    
    print(jsonString) // {"name":"John", "age":30}
    

    객체를 JSON으로 변환할 때는 객체의 속성 이름과 일치하는 키를 사용하여 JSON 객체가 생성됩니다.

  3. 데이터 타입 변환: ObjectMapper는 다른 데이터 형식 사이의 변환도 지원합니다. 예를 들어, String을 Int로 변환하거나 String에서 Date로 변환하는 등의 변환이 가능합니다. 이는 Transformer를 사용하면 간단히 처리할 수 있습니다. 아래는 예시 코드입니다:

    import ObjectMapper
    
    struct Person: Mappable {
        var name: String?
        var birthdate: Date?
    
        init?(map: Map) {}
    
        mutating func mapping(map: Map) {
            name <- map["name"]
            birthdate <- (map["birthdate"], DateTransform())
        }
    }
    
    let jsonString = "{\"name\":\"John\", \"birthdate\":\"1990-01-01\"}"
    let person = Mapper<Person>().map(JSONString: jsonString)
    
    print(person?.name) // John
    print(person?.birthdate)  // 1990-01-01 00:00:00 +0000
    

    위의 코드에서는 birthdate 필드가 Date 형식으로 변환됩니다. 이를 위해 ObjectMapper는 DateTransform을 사용하고 있습니다.

Swift ObjectMapper는 다양한 데이터 형식 변환을 지원하여 JSON 데이터를 간편하게 객체로 변환하고, 객체를 JSON 데이터로 변환할 수 있도록 도와줍니다. 또한, Custom Transformer를 사용하여 데이터 형식 변환도 유연하게 처리할 수 있습니다.

더 자세한 내용은 Swift ObjectMapper GitHub에서 확인할 수 있습니다.