0

I am using two textfields to pass login information to the PHP web service using Alamofire in the following way.

    @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)

The following Json data is received on login.

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

I want to use either "code" value (0 for false and 1 for true) or "message" value as String to put into an if - else statement for further steps. If Alamofire is not the best way to go about this, can someone please show another way. Thanks in advance for the help.

1 Answers1

0

Do you need to deserialize the response from the server?

The easiest option is parsing response value as 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
} 

You can also use the Codable protocol and the JSONDecoder to decode this response into your structure.

For example, declare struct:

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

and decode response using JSONDecoder

let jsonDecoder = JSONDecoder()
let loginResponse = try? jsonDecoder.decode(LoginResponse.self, from: response.data)
Mikhail Sein
  • 329
  • 3
  • 4
  • 14