Alamofire: Comment gérer la réponse json dans swift 3 | xcode 8 | alamofire 4.0

Créé le 30 sept. 2016  ·  3Commentaires  ·  Source: Alamofire/Alamofire

Alamofire.request("https://httpbin.org/get").responseJSON { réponse dans
debugPrint (réponse)

            if let json = response.result.value {
                let ip = json["url"] as! String
            }
        }

Erreur : 👎 Type 'Any' n'a pas de membres en indice

support

Commentaire le plus utile

C'est ainsi que je gère toujours mes réponses JSON.

.responseJSON {
    response in

    switch response.result {
    case .failure(let error):
        // Do whatever here
        return

    case .success(let data):
        // First make sure you got back a dictionary if that's what you expect
        guard let json = data as? [String : AnyObject] else {
            NSAlert.okWithMessage("Failed to get expected response from webserver.")
            return
        }

        // Then make sure you get the actual key/value types you expect
        guard var points = json["points"] as? Double,
            let additions = json["additions"] as? [[String : AnyObject]],
            let used = json["used"] as? [[String : AnyObject]] else {
                NSAlert.okWithMessage("Failed to get data from webserver")
                return
        }

Tous les 3 commentaires

            if response.result.value is NSNull {
                return
            }
            let JSON = response.result.value as? NSDictionary
            let id = JSON?["id"] as! String

Je pense que tu as besoin du ? avant ["url"]

C'est ainsi que je gère toujours mes réponses JSON.

.responseJSON {
    response in

    switch response.result {
    case .failure(let error):
        // Do whatever here
        return

    case .success(let data):
        // First make sure you got back a dictionary if that's what you expect
        guard let json = data as? [String : AnyObject] else {
            NSAlert.okWithMessage("Failed to get expected response from webserver.")
            return
        }

        // Then make sure you get the actual key/value types you expect
        guard var points = json["points"] as? Double,
            let additions = json["additions"] as? [[String : AnyObject]],
            let used = json["used"] as? [[String : AnyObject]] else {
                NSAlert.okWithMessage("Failed to get data from webserver")
                return
        }

Merci @grosch ! ??

Cette page vous a été utile?
0 / 5 - 0 notes