ios - 使用 Swift、AlamoFire 和 SwiftyJSON 解析 JSON 数据
问题描述
作为一个 Swift 新手,我对如何解析从 API 获得的一些 JSON 数据感到非常困惑。我可以使用 alamofire 请求从 api 获取 JSON 数据。在这一点上,我想我有一个 NSDictionary 对象,JSON 作为 print(JSON) 日志来控制大量 JSON。
if let result = response.result.value {
let JSON = result as! NSDictionary
print("this is what JSON is")
print(JSON)
我的问题是,首先,JSON 实际上是一个 NSDictionary。其次,我将如何访问 JSON 中的值。我是否需要先将其转换为数据对象。或者我如何获取嵌套数据。
例如,假设 JSON 如下所示:
{
"contact": {
"first": "Bob",
"second":"Jones"
}
}
我在 SO 上遇到了这段代码:
let data = JSON(data: JSON)
print("data\(data["contact"]["first"])")
但它会引发错误。我安装了 swiftyJSON,但很高兴有或没有它的解决方案。
在此先感谢您的任何建议
解决方案
你能试一下吗
if let result = response.result.value as? [String:Any] {
if let contact = result["contact"] as? [String:Any] {
if let first = contact["first"] as? String {
print(first)
}
}
}
这也是
let data = JSON(data: JSON)
Data
给出错误,因为参数的类型不应该是Dictionary
我更愿意从Alamofire请求中返回数据并使用Decodable
它来解析它并转换为所需的模型
推荐阅读
- angularjs - 是否可以从网页调用 TeamViewer.exe 以远程连接到主机和直通密码详细信息?
- java - 如何在硒中每10秒截屏一次?
- powershell - 在 PowerShell 中使用 Chocolatey 辅助函数
- c# - C# - 通过 ADFS 身份验证检索 X-Auth-Token
- java - Swagger 参数前缀
- liquibase - 运行 Liquibase 更新时出错:权限问题
- android - 如何将数字值设置为字符串 settext 到 textview
- r - 'findstr' 不是 R 中的内部或外部命令、可运行程序或批处理文件
- java - 无法在 Google Compute Engine 中使用 80 端口启动 tomcat
- javascript - 如何使用 Selenium 将外部库插入网站