我遇到了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)")
}
答案 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)
}