[swift] SwiftyJSON을 사용하여 Alamofire 응답에서 특정 필드값을 추출하여 고유한 값 추출하는 방법

Alamofire는 네트워크 요청을 처리하는 라이브러리이고, SwiftyJSON은 JSON 데이터를 쉽게 다룰 수 있도록 도와주는 라이브러리입니다. SwiftyJSON을 사용하여 Alamofire 응답에서 특정 필드값을 추출하고, 이 중에서 고유한 값들을 추출하는 방법에 대해 알아보겠습니다.

설치

먼저, 프로젝트에 SwiftyJSON과 Alamofire를 설치해야 합니다. CocoaPods를 사용하는 경우, Podfile에 다음과 같이 추가합니다:

pod 'SwiftyJSON'
pod 'Alamofire'

그리고 터미널에서 pod install 명령어를 실행하여 라이브러리를 설치합니다.

사용법

  1. Alamofire를 사용하여 네트워크 요청을 보내고, 응답을 처리합니다. 응답은 SwiftyJSON으로 파싱합니다.
import SwiftyJSON
import Alamofire

func fetchData() {
    Alamofire.request("https://api.example.com/data").responseJSON { response in
        switch response.result {
        case .success(let value):
            let json = JSON(value)
            // SwiftyJSON을 사용하여 JSON 데이터 파싱 및 필드값 추출
            processJSON(json)

        case .failure(let error):
            print(error)
        }
    }
}
  1. SwiftyJSON을 사용하여 필드값을 추출합니다. 이때, Value 객체의 .rawValue 속성을 사용하여 고유한 값들을 추출합니다.
func processJSON(_ json: JSON) {
    if let jsonArray = json.array {
        var uniqueValues = Set<String>()
        
        for subJson in jsonArray {
            if let value = subJson["fieldName"].string {
                uniqueValues.insert(value)
            }
        }
        
        print(uniqueValues)
    }
}

위 예제 코드에서 fieldName은 응답에서 추출하고자 하는 특정 필드의 이름입니다. 이 필드가 있는 각 JSON 객체의 값을 추출하여 uniqueValues 집합에 넣습니다. 이후, uniqueValues 집합에는 고유한 값들만 남게됩니다.

참고 자료