[swift] Swift에서 Codable과 Alamofire를 사용하여 API 호출 및 JSON 파싱하기
목차
소개
Swift에서는 Codable과 Alamofire를 함께 사용하여 API를 호출하고 JSON 데이터를 파싱할 수 있습니다. 이는 간편하게 데이터를 전송하고 처리하기 위해 널리 사용되는 방법입니다. Codable은 Swift 4부터 도입된 프로토콜로, 데이터를 직렬화하고 역직렬화하는 데 사용됩니다. Alamofire는 Swift에서 네트워킹 작업을 쉽게 처리할 수 있도록 도와주는 오픈 소스 라이브러리입니다.
Codable
Codable은 Swift의 프로토콜로, 객체를 JSON 데이터로 변환하거나 JSON 데이터를 객체로 변환할 때 사용됩니다. Codable을 사용하면 JSON 데이터의 키와 객체의 프로퍼티를 일치시켜 간단하게 변환할 수 있습니다. Codable을 구현하는 객체는 Codable
프로토콜을 채택하고, 프로퍼티에는 CodingKey
를 사용하여 매핑할 JSON 키를 지정해야 합니다.
struct Person: Codable {
var name: String
var age: Int
}
let json = """
{
"name": "John",
"age": 25
}
""".data(using: .utf8)
let decoder = JSONDecoder()
let person = try decoder.decode(Person.self, from: json)
print(person.name) // John
print(person.age) // 25
Alamofire
Alamofire는 Swift에서 HTTP 네트워킹을 편리하게 처리하기 위한 오픈 소스 라이브러리입니다. Alamofire를 사용하면 API 호출, 인증, 파라미터 전달 등의 작업을 간단하게 수행할 수 있습니다.
Alamofire.request("https://api.example.com/users").responseJSON { response in
if let json = response.value as? [String: Any] {
// JSON 파싱
}
}
API 호출 및 JSON 파싱 예시
앞서 소개한 Codable과 Alamofire를 함께 사용하여 API를 호출하고 JSON 데이터를 파싱하는 예시 코드입니다.
struct User: Codable {
var id: Int
var name: String
var email: String
}
Alamofire.request("https://api.example.com/users").responseJSON { response in
if let json = response.value as? [[String: Any]] {
let decoder = JSONDecoder()
let users = try decoder.decode([User].self, from: json)
for user in users {
print(user.name)
}
}
}
위의 코드는 API에서 받아온 JSON 배열을 [User]
배열로 파싱하여 사용자명을 출력하는 예시입니다.