responseJSON和Alamofire的responseData之间的区别

时间:2017-01-09 10:57:10

标签: alamofire

我只是玩Alamofire框架并且几乎没有api调用。但是我观察到alamofire中有两种请求方法

Alamofire的responseJSON和responseData之间有什么区别。

public func responseData(
    queue: DispatchQueue? = nil,
    completionHandler: @escaping (DataResponse<Data>) -> Void)
    -> Self
{
    return response(
        queue: queue,
        responseSerializer: DataRequest.dataResponseSerializer(),
        completionHandler: completionHandler
    )
}




public func responseJSON(
    queue: DispatchQueue? = nil,
    options: JSONSerialization.ReadingOptions = .allowFragments,
    completionHandler: @escaping (DataResponse<Any>) -> Void)
    -> Self
{
    return response(
        queue: queue,
        responseSerializer: DataRequest.jsonResponseSerializer(options: options),
        completionHandler: completionHandler
    )
}

1 个答案:

答案 0 :(得分:4)

responseJSON会将JSON对象传递给它完成。即它将是具有String键和JSON兼容值的字典或数组。

responseData会将Data对象传递给其完成。这可能包含JSON数据,可以将其反序列化为JSON对象,但也可以包含任何其他类型的数据。图像数据,HTML,视频数据等......

如果您知道从端点获取JSON,请使用responseJSON调用。