如何在swift中检查失败状态下的JSON条件



从JSON中,我获得了成功和失败状态,我可以检查成功状态,但无法在登录中检查失败状态条件。登录页面包含电话号码和密码文本字段。

如果我在此处输入未注册的电话号码,我需要在警报中显示以下消息:

["状态":失败,"消息":电话号码不存在]

如果我为电话号码输入了错误的密码,那么我需要在警报中显示以下消息:

["状态":失败,"消息":您输入了错误的密码]

如果我输入了错误的电话号码和密码,那么我需要在警报中显示以下消息:

["状态":失败,"消息":无效凭据]

但我无法检查所有条件,如果我输入了错误的密码或未注册的电话号码,我一直只能得到Invalid Credentials

在这里的注册页面中,我获得了uid,用于使用电话号码和密码成功注册:

do {
let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [String: Any]
print("the json of otppppppppp (json)")
DispatchQueue.main.async {
if (self.otpTextField.text == String(self.otpField ?? 12)){
print("registration successfullllll...")
let mobileNum = json["mobile_number"] as! [String : Any]
self.regUid = mobileNum["id"] as? String
let name = mobileNum["name"] as? String
let phNum = mobileNum["username"] as? String
DispatchQueue.main.async {
KeychainWrapper.standard.set(self.regUid!, forKey: "regUid")
KeychainWrapper.standard.set(phNum!, forKey: "user_phnum")
KeychainWrapper.standard.set(self.passwordTextField.text!, forKey: "user_password")
}

let loginVC = self.storyboard?.instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController
self.present(loginVC, animated: true)
}
}
}

在登录页面中,无法检查电话号码是否注册,以及是否为注册手机的错误密码。

我一直在显示失败状态的Invalid Credentials

do {
let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [String: Any]
print("the json of loginnnnnn (json)")
var loginStatus = json["status"] as? String

DispatchQueue.main.async {
if loginStatus == "Failed"
{
AlertFun.ShowAlert(title: "", message: "Invalid Credentials", in: self)
}
else{
self.Uid = json["id"] as? String

let emailL = json["user_email"] as? String
print("login uid (String(describing: self.Uid))")

KeychainWrapper.standard.set(emailL ?? "", forKey: "user_email")
let saveUserId: Bool = KeychainWrapper.standard.set(self.Uid!, forKey: "Uid")

let mainStoryBoard = UIStoryboard(name: "Main", bundle: nil)
let navigationController = mainStoryBoard.instantiateViewController(withIdentifier: "HomeNavigation")
let appDelagate = UIApplication.shared.delegate
appDelagate?.window??.rootViewController = navigationController
}
}
}

请帮我在登录页面中查看以上条件。

根据我的理解,您希望根据从JSON获得的状态显示不同的消息。

你可以简单地这样做。

AlertUn。ShowAlert(标题:",消息:json["msg"],在:self中(

为了安全起见,应该使用guard语句打开json["msg"]的值,并将其显示在Alert中。

最新更新