如何在 swift 3.0 中检查“成功”键值
Posted
技术标签:
【中文标题】如何在 swift 3.0 中检查“成功”键值【英文标题】:how to check "Success" key value in swift 3.0 【发布时间】:2016-11-29 07:04:24 【问题描述】:Alamofire.request(webpath).responseJSON
response in
//here check success key ???
我的 json 响应包含
Message = "some message";
Success = True;
如何直接从响应中获取 Success 键并检查 if 条件?是真是假
【问题讨论】:
我相信你可以做到 if (response["Success"]); ? 【参考方案1】:-
首先,您必须从响应中获取
Result
对象。它是一个枚举,可以是success
或failure
。
然后您必须将从success
值返回的Any
对象转换为字典。
现在您可以通过键访问该属性。
如下:
Alamofire.request(webpath).responseJSON response in
guard case .success(let rawJSON) = response.result else
// handle failure
return
// rawJSON is your JSON response in an `Any` object.
// make a dictionary out of it:
guard let json = rawJSON as? [String: Any] else
return
// now you can access the value for "Success":
guard let successValue = json["Success"] as? String else
// `Success` is not a String
return
if successValue == "True"
// do something
else
// do something else
【讨论】:
您的解决方案是正确的,但在此之后我必须检查,如果 json["Success"] == "True" ,如何检查? @Dharini 如果“成功”的值是字符串,我更新了答案。【参考方案2】:您可以检查如下:
let statusCheck = dicObj["Success"] as! Int
if statusCheck == 1
println("Success")
else
println("Failure")
【讨论】:
在这种情况下,我将 response.result.value 作为字符串存储在 dicobj 中 let statusCheck = dicObj["Success"] as!内部不工作 让 swiftyJsonVar = response.result.value!如果让 dicObj = swiftyJsonVar 为? NSDictionary 【参考方案3】:你可以这样检索。
if let result = response.result.value
let JSON = result as! [String:Any]
if JSON["success"] == 1
print("success")
【讨论】:
if JSON["success"] == 1 显示错误,例如“二元运算符'=='不能应用于'Any?'类型的操作数和“诠释”“ 如果成功是布尔值if JSON["success"] as Bool == true print("success")
,请尝试这样。如果成功值为字符串if JSON["success"] as String == "true" print("success")
以上是关于如何在 swift 3.0 中检查“成功”键值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 UserDefaults.standard 在 Swift 3.0 中保持会话?