swiftyJson错误句柄

时间:2017-02-08 09:19:24

标签: swift xcode alamofire swifty-json

我遇到了SwiftyJson的问题,我试图检查我的Json中是否有任何值包含"访问被拒绝"并打印它,但它没有检查,我的代码有什么问题?

我得到的Json回应是:

  

{       error = {           code =" -32002&#34 ;;           message ="访问被拒绝&#34 ;;       };       id = 1;       jsonrpc =" 2.0&#34 ;; }

请求方法:

 private func makeWebServiceCall (urlAddress: String, requestMethod: HTTPMethod, params:[String:Any], completion: @escaping (_ JSON : Any) -> ()) {

    manager.session.configuration.timeoutIntervalForRequest = 1


    manager.request(urlAddress, method: requestMethod, parameters: params, encoding: JSONEncoding.default).responseJSON{ response in

        print(response.timeline)

        switch response.result {
        case .success(let value):

            let json = JSON(value)

            if (json["error"].arrayValue.contains("Access denied")) {
                print("Access denied")
            }

            if let jsonData = response.result.value {


                completion(jsonData)
            }


        case .failure(let error):

                completion("Failure Response: \(error)")



}

2 个答案:

答案 0 :(得分:2)

json["error"] Dictionary而不是Array,您需要访问该字典中的message值。

if let message = json["error"]["message"].string, message == "Access denied" {
     print("Access denied")
}

答案 1 :(得分:1)

试试这个,

if let message = json["error"]["message"].rawString(), message == "Access denied" {

    print(message)
}