我正在使用两个文本字段以以下方式使用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并不是解决此问题的最佳方法,请有人提出其他方法。预先感谢您的帮助。
答案 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)