如何在 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 对象。它是一个枚举,可以是successfailure。 然后您必须将从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 中检查“成功”键值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 3.0 中制作时间选择器视图?

如何使用 UserDefaults.standard 在 Swift 3.0 中保持会话?

在 Swift 3.0 中,没有在数组中的索引处获取对象的键值语法

我应该如何在 swift 3.0 中安装 Dropbox?

如何在swift 3.0中隐藏连接的segue中的标签栏

Swift 3.0 中的 Spotify SDK:如何知道歌曲何时结束