Swift ObjectMapper는 Swift에서 JSON 데이터를 객체로 변환하는 라이브러리입니다. 이 라이브러리는 JSON을 Swift 클래스 또는 구조체에 매핑하고, 다양한 데이터 형식 사이의 변환을 쉽게 할 수 있도록 도와줍니다.
Swift ObjectMapper를 사용하여 데이터 형식을 변환하는 몇 가지 방법은 다음과 같습니다:
-
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 데이터를 객체로 변환할 때 각 필드의 이름과 일치하는 속성에 자동으로 매핑됩니다.
-
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 객체가 생성됩니다.
-
데이터 타입 변환: 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에서 확인할 수 있습니다.