2016-12-16 49 views
-1

我需要獲取嵌套的數組值,我需要用戶數據,我需要令牌數據。我需要這些數據,因爲我需要初始化會話變量以便能夠在我的應用程序中使用它們。獲取嵌套數組的值alamofire swift 3

例如,用戶名,fotografia,設法獲取數據RC和味精是主要的陣列中,但我無法得到嵌套數組的值

["rc": 00, 
"user": { 
"__v" = 0; 
deviceId = ""; 
email = "[email protected]"; 
fullName = "SMITH JOHN "; 
lastName = "SMITH "; 
modifiedAt = "2016-12-16T06:08:58.856Z"; 
name = "JOHN "; 
photo = ""; 
provider = ""; 
"provider_id" = ""; 
status = 01; 
tel = 3333333333; 
typeUser = USER; 
username = "[email protected]"; 
}, "token": { 
"__v" = 0; 
"_id" = 585384e3ccc4; 
createdAt = "2016-12-16T08:10:03.407Z"; 
userId = 585384e3ccc4; 
value = Z4WedlAzhdkap; 
}, "msg": success] 




@IBAction func btnLogin(_ sender: Any) { 
    let gsUtil=GSUtil() 
    let user = txtUser.text! 
    let password = txtPass.text! 
    let credentialData = "\(user):\(password)".data(using: String.Encoding.utf8)! 
    let base64Credentials = credentialData.base64EncodedString(options: []) 
    let headers = ["Authorization": "Basic \(base64Credentials)"] 
    Alamofire.request(gsUtil.getCompleteURI()+"user/auth/", 
         method: .post, 
         parameters: nil, 
         encoding: URLEncoding.default, 
         headers:headers) 
     .validate() 
     .responseJSON { response in 
      if response.result.value != nil{ 
       let json = response.result.value as? [String: Any] 
       let rc=json?["rc"] 
       let msg=json?["msg"] 
       if rc as? String=="00" 
       { 
        self.showMessage(msg: msg as! String) 
       } 
      }else{ 
       self.showMessage(msg: "Error en los datos") 
      } 
    } 
    } 

回答

0

我真的不明白問題。你已經幾乎做你需要做的(只有一步)什麼:

我會用很多if let小號擺脫所有討厭的自選的開始:

if let json = input as? [String: Any] { 
    let msg = json["msg"] 
    if let rc = json["rc"] as? String, rc == "00" { 
     self.showMessage(msg: msg as! String) 
    } 
    if let user = json["user"] as? [String : Any] { 
     print(user) 
    } 
    if let token = json["token"] as? [String : Any] { 
     print(token) 
    } 
} else { 
    self.showMessage(msg: "Error en los datos") 
}