невозможно распечатать значение JSON с Alamofire - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь получить данные с помощью flickr API, и я написал простой код с Alamofire и swiftyJSON, чтобы получить эти данные из flickr, но я могу напечатать размер данных, но когда я пытаюсь напечатать json, мой catch блок бежит. мои коды указаны ниже

func getPhotos(completion: @escaping CompletionHandler) -> Void {

        let parameter: [String: Any] = [
            "method": PHOTOS_METHOD,
            "api_key": FLICKR_API_KEY,
            "per_page": PER_PAGE,
            "page": PAGE,
            "format": FORMAT_TYPE,
            "nojsoncallback": JSON_CALLBACK]

        Alamofire.request(FLICKR_URL, method: .get, parameters: parameter, encoding: JSONEncoding.default, headers: HEADER).responseString { (response) in

            if response.result.error == nil {

                guard let data = response.data else {return}

                do {
                    if let json = try JSON(data: data).array {
                        print(json)
                    }
                    completion(true)
                } catch {
                    print("eroorrrre")
                    completion(false)
                }

                print("CALL CORRECT")
                print(data)

                completion(true)
            }
            else {
                completion(false)
                debugPrint(response.result.error as Any)
            }
        }
    }

мой консольный журнал

eroorrrre
CALL CORRECT
128 bytes

Я не уверен, что я делаю здесь неправильно, любая помощь будет оценена

1 Ответ

0 голосов
/ 17 ноября 2018

Попробуйте это

Alamofire.request(FLICKR_URL, method: .get, parameters: parameter, headers: HEADER).responseJSON { response in // call responseJSON instead of responseString

    if response.result.isSuccess { // If http request is success

        let json: JSON = JSON(response.result.value!) // JSON format from SwiftyJSON (I suppose you are using it)

        guard let data = json.array else { // You suppose that json is array of objects
            print("Unexpected JSON format")
            completion(false)
        }

        print(data) 
        completion(true)

    } else {
        print(response.error)
        completion(false)
    }
}
...