Jiwift

[iOS/Swift] Alamofire Array JSON 데이터 파싱하기(리스트 형식 데이터) 본문

라이브러리/Alamofire

[iOS/Swift] Alamofire Array JSON 데이터 파싱하기(리스트 형식 데이터)

지위프트 2023. 11. 1. 12:13
반응형

 우리는 지난 글에서 Alamofire를 통해서 간단하게 데이터를 파싱 하는 방법을 알아보았습니다. 이번 시간에는 복수의 데이터가 들어오는 경우를 가지고 이야기하겠습니다. 

 

 사용하는 데이터는 지난번과 같지만 Array로 반복적으로 들어오는 데이터입니다. Model은 그대로 사용해도 됩니다. 해당 방법은 struct뿐만 아니라 Int, String 타입들도 동일합니다. 

 

반복적인 데이터

 위 사진에서 보시는 것처럼 특정 JSON 양식이 반복되는 것을 볼 수 있습니다. 이런 경우에는 정말 간단한 방법으로 처리가 가능한데요. 바로 지난번 코드를 수정해서 보도록 하조

 

let url: String = "https://jsonplaceholder.typicode.com/todos"
        
AF.request(url,
           method: .get)
            .validate(statusCode: 200..<300)
            .validate(contentType: ["application/json"])
            .responseDecodable(of: [TestModel].self) { (response) in
                switch response.result {
                case .success(let result):
                    print("데이터 개수 : \(result.count)")
                case .failure(let error):
                    print("통신 에러 \(error.localizedDescription)")
                }
            }
            


=======================================
// Int 타입이 반복된다면
.responseDecodable(of: [Int].self)
// String 타입이 반복된다면
.responseDecodable(of: [String].self)

 이것이 수정한 코드입니다. URL은 Array 방식의 데이터를 반환하는 주소입니다. responseDecodable 부분을 보면 Model을 '[ ]'로 감싼 것을 볼 수 있습니다. 저렇게 하면 데이터가 Array 형식으로 파싱 되게 됩니다. 다른 데이터 타입도 마찬가지로 진행하면 됩니다.

 

 result는 count와 같은 메서드가 동작하게 됩니다. 데이터를 꺼내기 위해서는 원하는 index를 넣어주어야 합니다. 

 

ex) result[3] 

 

응답 데이터 개수

 

반응형