首页 > 解决方案 > 使用 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,但很高兴有或没有它的解决方案。

在此先感谢您的任何建议

标签: iosjsonswiftswifty-json

解决方案


你能试一下吗

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它来解析它并转换为所需的模型


推荐阅读