【问题标题】:Alamofire print request gives nilAlamofire 打印请求给出 nil
【发布时间】:2025-12-23 19:45:11
【问题描述】:

您好,我尝试从请求中打印,但结果为零

Alamofire.request("http://.../api/v1.8/set/order/", method: .get, parameters: params)
        .responseString { response in
            switch response.result {
            case .success(let value):
                print("value\(value)")
                var json = JSON(value)
                let nass = json["description"].string
                print("nass\(nass)")
   }

in cinsole 打印我

value  {"result":{"code":"15","description":"Invalid account email"}}
nass nil

【问题讨论】:

    标签: swift alamofire


    【解决方案1】:
    Alamofire.request("http://xincal.ru/api/v1.8/set/order/", method: .get, parameters: params).responseJSON { response in
         if let r = response.result.value as? NSDictionary
             if let result = r?.value(forKey: "result") as? NSDictionary {
                 if let nass = result.value(forKey: "description") as? String {
                    print(nass)
                 }
             }
         } else {
             print("Connection error")
         }
    }
    

    但我们有更好的方法来使用 Codable 解析响应数据。

    为响应准备模型

    struct Result: Codable {
        let code: String
        let description: String
    }
    
    struct Response: Codable {
        let result: Result
    }
    
    Alamofire.request("http://xincal.ru/api/v1.8/set/order/", method: .get, parameters: params).responseJSON { response in
     if let data = response.data
         let object = try! JSONDecoder().decode(Response.self, from: jsonData)
          print(object.result.description)
     } else {
         print("Connection error")
     }
    }
    

    【讨论】: