Swift ObjectMapper는 Swift에서 JSON 데이터를 객체로 변환하거나 객체를 JSON으로 변환하는 라이브러리입니다. 비즈니스 로직에서는 API 응답을 JSON으로 받아와서 객체로 변환하거나, 객체를 JSON으로 변환하여 API 요청을 보낼 때 주로 사용됩니다.
ObjectMapper 설치
먼저, ObjectMapper를 설치해야 합니다. Swift Package Manager를 통해 설치할 수 있습니다. 프로젝트 디렉토리에서 Package.swift
파일을 열고 dependencies
섹션에 다음과 같이 추가합니다:
dependencies: [
.package(url: "https://github.com/tristanhimmelman/ObjectMapper.git", from: "4.2.0")
]
그리고 나서 터미널에서 다음 명령을 실행하여 의존성을 업데이트합니다:
$ swift package update
모델 클래스 작성
비즈니스 로직에 맞는 모델 클래스를 작성해야 합니다. 모델 클래스는 ObjectMapper의 Mappable
프로토콜을 준수해야 합니다. 예를 들어, 사용자 정보를 담는 User
모델 클래스를 작성해보겠습니다:
import ObjectMapper
class User: Mappable {
var id: Int?
var name: String?
var email: String?
required init?(map: Map) {
}
func mapping(map: Map) {
id <- map["id"]
name <- map["name"]
email <- map["email"]
}
}
Mappable
프로토콜을 채택하고, id
, name
, email
등 모델에 필요한 속성들을 선언한 후, required init?(map: Map)
메서드와 mapping(map: Map)
메서드를 구현해야 합니다.
JSON 데이터를 객체로 변환
API 응답과 같은 JSON 데이터를 객체로 변환하는 경우, 다음과 같이 ObjectMapper를 사용할 수 있습니다:
import ObjectMapper
let jsonString = """
{
"id": 123,
"name": "John",
"email": "john@example.com"
}
"""
if let user = Mapper<User>().map(JSONString: jsonString) {
// 변환에 성공한 경우
print(user.id) // 123
print(user.name) // John
print(user.email) // john@example.com
} else {
// 변환에 실패한 경우
print("JSON 데이터를 객체로 변환할 수 없습니다.")
}
JSONString
이라는 API 응답 데이터를 JSON
형식으로 처리하고, 이를 Mapper<User>().map
메서드를 사용하여 User 객체로 변환합니다. 변환에 성공하면 User 객체에 포함된 속성들을 사용할 수 있습니다.
객체를 JSON으로 변환
객체를 JSON으로 변환하여 API 요청과 같은 경우, 다음과 같이 ObjectMapper를 사용할 수 있습니다:
import ObjectMapper
let user = User()
user.id = 123
user.name = "John"
user.email = "john@example.com"
if let jsonString = Mapper().toJSONString(user) {
// 변환에 성공한 경우
print(jsonString)
} else {
// 변환에 실패한 경우
print("객체를 JSON으로 변환할 수 없습니다.")
}
User 객체를 생성하고 속성들에 값을 할당합니다. 그리고 toJSONString
메서드를 사용하여 객체를 JSON 형식의 문자열로 변환합니다. 변환에 성공하면 JSON 형식의 문자열을 사용할 수 있습니다.