如何快速获取响应 JSON

Posted

技术标签:

【中文标题】如何快速获取响应 JSON【英文标题】:how to get the response JSON in swift 【发布时间】:2020-11-29 10:01:28 【问题描述】:

我收到了来自 Alamofire 发布请求的回复。我想从响应中获取状态码。 代码如下:

case .success(let upload, _, _):
    upload.responseJSON  response in
        print(response.result.value!)
    

下面是响应:

【问题讨论】:

【参考方案1】:

响应结果的value 属性是一个字典。您可以像这样提取状态:

let json = response.result.value as? [String: Any]
if let status = json?["status"] as? Int 
    print(status)

【讨论】:

【参考方案2】:

在具有可编码结构的 Alamofire 5 中使用 responseDecodable

将 responseJSON 替换为 responseDecodable。
.responseDecodable  (response: AFDataResponse<ProfileModel>) in
        switch response.result 
        case .success(let profileModel):
            switch profileModel.status 
            case 200:
                print("success")
            case 101:
                print("sessionExpire")
            default:
                print("default")
            
        case .failure(let error):
            print("failure")
        
    

个人资料模型

struct ProfileModel: Codable 
    let status: Int
    let type: String
    let data: ProfileDataModel


struct ProfileDataModel: Codable 
    let ImagePath: String
    let ThumbImagePath: String

【讨论】:

以上是关于如何快速获取响应 JSON的主要内容,如果未能解决你的问题,请参考以下文章

如何快速获取对特定网址的查询 [关闭]

如何从 JSON 响应中获取字段值

如何从get请求获取json响应而不是html响应?

如何从 json 响应中获取特定的字段值?

如何获取 JSON 响应数组的所有索引值?

如何检查获取的响应是不是是javascript中的json对象