Как использовать элемент JSON с alamofire - PullRequest
0 голосов
/ 01 ноября 2018

Я использую два текстовых поля для передачи информации для входа в веб-службу PHP с помощью Alamofire следующим образом.

    @IBAction func LoginButton(_ sender: Any) {

   //getting the username and password
    let parameters: Parameters=[
    "Name":TextFieldUserName.text!,
    "Pass":TextFieldPassword.text!
    ]

    Alamofire.request(URL_USER_LOGIN, method: .post, parameters: parameters).responseJSON
    {
    response in
  //printing response
    print(response)

Следующие данные Json получены при входе в систему.

[{"code":0,"message":"Check Username and Password....","userid":""}]

Я хочу использовать значение "code" (0 для false и 1 для true) или значение "message" в качестве String для добавления в оператор if - else для дальнейших шагов. Если Alamofire - не лучший способ сделать это, может кто-нибудь показать другой путь. Заранее спасибо за помощь.

1 Ответ

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

Вам нужно десериализовать ответ с сервера?

Самый простой вариант - анализ значения ответа как NSDictionary

if let JSON = response.result.value as? NSDictionary {
    let code = JSON.value(forKey: "code") as? Int
    let message = JSON.value(forKey: "message") as? String
} 

Вы также можете использовать протокол Codable и JSONDecoder для декодирования этого ответа в вашей структуре.

Например, объявить структуру:

struct LoginResponse: Codable {
    var code: Int
    var message: String
}

и декодировать ответ, используя JSONDecoder

let jsonDecoder = JSONDecoder()
let loginResponse = try? jsonDecoder.decode(LoginResponse.self, from: response.data)
...