2016-11-29 104 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