ios - 无法将“__NSArray0”类型的值转换为“NSDictionary”
问题描述
当我解析我的 json 响应时,这是我的错误
无法将类型“__NSArray0”(0x104bcd838)的值转换为“NSDictionary”(0x104bcf818)。
这是我的代码
@IBAction func LoginAction(_ sender: Any) {
let parameters: Parameters=[
"email":emailUser.text!,
"password":passWord.text!,
]
let url2 = "http://marwen1994.alwaysdata.net/Carpooling/public/loginpost.php"
Alamofire.request(url2, method: .post, parameters: parameters).responseJSON
{
response in
let A = response.result.value as! Dictionary<String,Any>
let list = A["items"] as! Dictionary<String,Any>
let nom = list["name"] as! String
let pass = A["password"] as! String
let email = list["email"] as! String
let adresse = A["adresse"] as! String
let DateNaissance = A["DateNaissance"] as! String
let id = A["id"] as! Int
let numTel = A["num_tel"] as! Int
if(pass == self.passWord.text)
{
UserDefaults.standard.set(true, forKey: "ConnectionStatus")
UserDefaults.standard.set(id, forKey: "ConnectedID")
UserDefaults.standard.set(nom, forKey: "nom")
// UserDefaults.standard.set(prenom, forKey: "prenom")
UserDefaults.standard.set(email, forKey: "email")
UserDefaults.standard.set(adresse, forKey: "adresse")
UserDefaults.standard.set(pass, forKey: "motDePasse")
UserDefaults.standard.set(numTel, forKey: "numTel")
UserDefaults.standard.set(DateNaissance, forKey: "DateNaissance")
self.performSegue(withIdentifier: "toProfile", sender: nil)
}
else{
let alert = UIAlertController(title: "Woah!!!", message: "You inserted a wrong email or a wrong password! Please enter a valid mail and password.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Ok", style: .cancel, handler: nil))
self.present(alert, animated: true)
}
}
}
解决方案
在没有看到实际 JSON 响应的情况下很难知道错误在哪里,但可能这是一个数组而不是字典
let list = A["items"] as! Dictionary<String,Any>
应该是这样的
let list = A["items"] as! Array
推荐阅读
- php - 使用数据库中的坐标在地图上添加标记,使用 JSON 检索数据
- git - 如何更改所有分支的根提交?
- java - TestNG - 无法从控制台获取输入
- c - GCC x86_64 asm 中的寄存器分配冲突。终身忽略
- c# - ServicePoint 配置 - 应用程序缺乏 http 连接?
- dask - 如何为使用“dask.dataframe.to_parquet()”创建的文件夹设置文件夹权限(mkdir 模式)?
- python - 如何实现 Pyspark 的排名指标?
- sql-server-2017 - Sqlserver 查询从子表中检索
- ios - 如何将 Interface Builder 中的视图连接到 Xcode 11 中另一个框架的超类中定义的 IBOutlet
- haskell - 在过滤器中考虑列表的其余部分