使用 Alamofire 序列化 JSON 对象

Posted

技术标签:

【中文标题】使用 Alamofire 序列化 JSON 对象【英文标题】:Serializing JSON object with Alamofire 【发布时间】:2016-11-12 00:08:15 【问题描述】:

我正在尝试运行以序列化 JSON 响应,但在“let json = ...”行出现错误。错误是“对成员 'jsonObject(with:options:)' 的不明确引用”。如果有人知道如何解决这个问题,我会欣赏它

    Alamofire.request("https://httpbin.org/get").responseJSON  response in

        if let JSON = response.result.value 

            do 
                let json = try JSONSerialization.jsonObject(with: response.result.value!, options: .allowFragments)

             catch 
                print ()
            

            print("JSON: \(JSON)")
        
    

【问题讨论】:

【参考方案1】:

因为response.result.value 是字典__NSDictionaryI 的类型,而不是jsonObject 预期的数据。您可以轻松地从JSON 中检索值,无需转换为 json,例如:JSON["title"]

【讨论】:

问题是访问像 JSON["title"] 这样的值是 hacky 和懒惰的。您的响应 JSON 应该被序列化为一个 swift 对象,以便您可以与它进行本地交互并拥有干净的代码。

以上是关于使用 Alamofire 序列化 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章

使用 Alamofire 和不记名令牌序列化对象

api没有使用alamofire显示序列化的json输出

使用 Alamofire 和 Swift 3 反序列化复杂的 JSON

json 使用 alamofire 快速发布嵌套对象

Swift - 序列化包含对象数组的对象并使用 alamofire 发送

使用 Alamofire 将 JSON 解码为对象