2016-11-29 65 views
0
Alamofire.request(webpath).responseJSON 
{ response in 
    //here check success key ??? 
} 

我的JSON响应“成功”的键值包含如何检查在SWIFT 3.0

{Message = "some message"; 
Success = True;} 

如何从响应直接把成功的关键,如果条件检查?这是真的还是假的

+1

我相信你可以做,如果(响应[ “成功”]){}; ? –

回答

1
  1. 首先,你必须得到响应的Result对象。它是一个枚举,可以是successfailure
  2. 然后,您必须将从success值返回的Any对象作为字典进行投射。
  3. 现在你可以简单地通过它的钥匙访问属性。

像以下:

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 
    } 
} 
+0

你的解决方案是正确的,但在此之后,我必须检查,如果json [“Success”] = =“真”,如何检查? – Dharini

+0

@Dharini我更新了答案,如果“成功”的值是一个字符串。 –

1

您可以检查如下:

let statusCheck = dicObj["Success"] as! Int 

if statusCheck == 1{ 
    println("Success") 
} 
else{ 
    println("Failure") 
} 
+0

即时将response.result.value存储在dicobj中作为字符串在这种情况下让statusCheck = dicObj [“Success”] as!诠释没有工作 – Dharini

+0

不保存像这样...给我一分钟我会写代码并与你分享... –

+1

让swiftyJsonVar = response.result.value! 如果让dicObj = swiftyJsonVar为? NSDictionary { } –

1

您可以检索这个样子。

if let result = response.result.value { 
    let JSON = result as! [String:Any] 
     if JSON["success"] == 1 
    { 
     print("success") 
     } 

} 
+0

如果JSON [“success”] == 1显示像“Binary operator'=='这样的错误不能应用于'Any?'类型的操作数。和'Int'“ – Dharini

+0

像这样尝试,如果成功是布尔值,如果JSON [”success“]为Bool == true {print(”success“)}'。如果成功的价值是字符串'如果JSON [“成功”]作为字符串==“真”{印刷(“成功”)}' – Aravi