swiftyJson 错误句柄

Posted

技术标签:

【中文标题】swiftyJson 错误句柄【英文标题】:swiftyJson error handle 【发布时间】:2017-02-08 09:19:24 【问题描述】:

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

我得到的 JSON 响应是:

错误 = 代码=“-32002”; message = "访问被拒绝"; ; ID = 1; jsonrpc = "2.0";

请求方法:

 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)")




【问题讨论】:

json["error"] 包含一个字典 。数组由[] 表示 【参考方案1】:

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

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

【讨论】:

谢谢,这正是我需要的! @EgleMatutyte 欢迎朋友 :)【参考方案2】:

这样试试,

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

    print(message)

【讨论】:

以上是关于swiftyJson 错误句柄的主要内容,如果未能解决你的问题,请参考以下文章

为啥调用 GetThreadTimes 时出现“句柄无效”错误?

关闭 websocket 时出现 SignalR 错误 - 句柄无效

液体错误:超过集合的唯一句柄的最大数量。 (购物)

错误6句柄在Windows上写入文件无效[关闭]

Windows DuplicateHandle 命名管道句柄奇怪错误 183“文件已存在”

getDownloadURL 的 Firebase 存储句柄错误