处理Xcode 8中的DataResponse <any>(Swift)

时间:2017-10-03 06:02:16

标签: ios json swift

我是iOS的新手,我正在使用alamofire。当我调用API时,结果成功打印到控制台,如图所示

here

我想要的是,仅从此响应中提取消息并将其呈现给用户。怎么做? 我搜索了这个但是我发现了与将字符串转换为JSON对象或JSON对象转换为JSON字符串相关的内容。但我的回答是DataResponse<Any>类型,我不确切知道如何处理它。

P.s我正在使用Xcode 8,Swift 3.

2 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

if let object = response.result.value as? [String:Any], let message = object["message"] as? String {
    print(message) // "User has been successfully registrered"
}

答案 1 :(得分:1)

Rashwan L 答案很完美!!

我仍在建议使用 ObjectMapper

更好的方法

很容易轻松访问每个属性

首先您需要在系统中下载 SwiftyJSONAccelerator 应用程序,以便将 JSON 响应转换为 struct 无论你需要什么。

https://github.com/insanoid/SwiftyJSONAccelerator

为您的JSON创建,如果您没有使用 SwiftyJosn ,请选择 ObjectMapper 下拉列表中有三个选项。< / p>

将所有生成的类文件拖放到XCode中,确保选中“复制项目”(如果需要)复选框已选中

如何使用?

       import ObjectMapper


        WebServices().getMyWSResponse(success: { (response) in
            guard let res = response as? [String:Any], let obect = Mapper<MYGeneratedModelClass>().map(JSON: res) else {
                return
            }

            //Here you get  obect  , You can access object.message

        }, error: { (error) in

        })
    }

注意:WebServices().getMyWSResponse是我的类,可以调用你不需要担心的那个

希望它对你有所帮助