【问题标题】:How to convert <AnyObject> response in AnyObject after an Alamofire request with JSON in Swift?在 Swift 中使用 JSON 的 Alamofire 请求后,如何在 AnyObject 中转换 <AnyObject> 响应?
【发布时间】:2015-09-18 10:06:51
【问题描述】:

所以我想向应该返回 JSON 文件的特定 API 发送请求。

我正在使用 Alamofire 来获取 JSON 对象:

dataFromAPI : JSON
Alamofire.request(.GET, myURL).responseJSON { (_, _, data) -> Void in
               dataFromAPI = JSON(data)
            }

我的问题是数据是一个 AnyObject 数组,而 JSON 函数需要一个 AnyObject 类型。如何将一个转换为另一个或解决问题?

【问题讨论】:

    标签: json swift alamofire


    【解决方案1】:

    不确定我是否收到了您的问题,但会尝试为您提供一个示例,说明我是如何做到的。 根据您的情况更改代码。

    Alamofire.request(.GET, myURL)
        .validate(statusCode: 200..<300)
        .validate(contentType: ["application/json"])
        .responseJSON { request, response, jsonResult in
            switch jsonResult {
            case .Success:
                if let data = jsonResult.value as? AnyObject {
                    self.dataFromAPI = JSON(data)
                }
            case .Failure(_, let error):
                print(error)
            }
    }
    

    通常我不会对 AnyObject 进行解包,因为这没什么意义。 我通常解开到[String: AnyObject],因为我期待我的 API 中的 Dictionary,然后我尝试将其转换为我的自定义模型类。

    如果我没有理解问题,请纠正我。 :)

    【讨论】:

      【解决方案2】:

      Alamofire 返回一个Result&lt;AnyObject&gt; 对象。您应该在提取 JSON 之前检查结果是成功还是失败:

      Alamofire.request(.GET, myURL)
          .responseJSON { request, response, result in
              switch result {
              case .Success(let JSON):
                  print("Success with JSON: \(JSON)")
      
              case .Failure(let data, let error):
                  print("Request failed with error: \(error)")
      
                  if let data = data {
                      print("Response data: \(NSString(data: data, encoding: NSUTF8StringEncoding)!)")
                  }
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-07
        • 1970-01-01
        • 2016-11-17
        相关资源
        最近更新 更多