如何在alamofire中使用JSON元素

时间:2018-11-01 12:57:43

标签: json swift alamofire

我正在使用两个文本字段以以下方式使用Alamofire将登录信息传递到PHP Web服务。

    @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 :(得分:0)

您需要反序列化服务器的响应吗?

最简单的选择是将响应值解析为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:

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

并使用JSONDecoder解码响应

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