Запрос печати Alamofire дает ноль - PullRequest
0 голосов
/ 27 апреля 2018

Привет, я пытаюсь напечатать из запроса, но поймать ноль

Alamofire.request("http://.../api/v1.8/set/order/", method: .get, parameters: params)
        .responseString { response in
            switch response.result {
            case .success(let value):
                print("value\(value)")
                var json = JSON(value)
                let nass = json["description"].string
                print("nass\(nass)")
   }

в cinsole распечатать меня

value  {"result":{"code":"15","description":"Invalid account email"}}
nass nil

1 Ответ

0 голосов
/ 27 апреля 2018
Alamofire.request("http://xincal.ru/api/v1.8/set/order/", method: .get, parameters: params).responseJSON { response in
     if let r = response.result.value as? NSDictionary
         if let result = r?.value(forKey: "result") as? NSDictionary {
             if let nass = result.value(forKey: "description") as? String {
                print(nass)
             }
         }
     } else {
         print("Connection error")
     }
}

Но у нас есть лучший способ для анализа данных ответов с использованием Codable.

Подготовка моделей к ответу

struct Result: Codable {
    let code: String
    let description: String
}

struct Response: Codable {
    let result: Result
}

Alamofire.request("http://xincal.ru/api/v1.8/set/order/", method: .get, parameters: params).responseJSON { response in
 if let data = response.data
     let object = try! JSONDecoder().decode(Response.self, from: jsonData)
      print(object.result.description)
 } else {
     print("Connection error")
 }
}
...