如何在Swift中获取JSON数据并将其添加到URL

时间:2017-07-12 04:05:21

标签: ios json swift

我如何获取JSON数据并将其添加到URL?

我的案例是我将访问JSON URL,但我需要来自其他JSON URL的值Token。

这是我的Json,我需要一个令牌才能访问它。 的 https://api-sandbox.tiket.com/flight_api/all_airport/token= ......

要获取令牌,我必须从其他JSON访问,这将查看其他JSON以获取令牌。

{ "诊断" {"状态":200," elapsetime":" 0.2082""的MemoryUsage":& #34; 16.99MB"" UNIX_TIMESTAMP":1499832598,"确认":"成功""朗":&#34 ; ID""货币":" IDR"}, " output_type":" JSON&#34 ;, " login_status":"假&#34 ;, "令牌":"的 b650fce732668b58b0a4c404b65932e972ad123d " }

我必须获取值令牌,并将其添加到第一个JSON URL以访问First JSON

这是我的编码:

func getLatestKotaTujuan(){

>>> form['ctl00$ContentPlaceHolder1$DDLDistrict'].options

1 个答案:

答案 0 :(得分:0)

你可以使用Alamofire& SwiftyJSON

  1. 安装两个cocopod

       pod 'Alamofire'
       pod 'SwiftyJSON'
    
  2. 我的Json看起来像

    {"loginNodes":[{"errorMessage":"Welcome To Alamofire","name":Enamul Haque,"errorCode":"0","photo":null}]}
    
  3. 声明多维数组

     var arrRes = [[String:AnyObject]]()
    
  4. Alamofire从服务器获取json

     func getList() {
    
    
       Alamofire.request("url.....", method: .post, parameters: [
        "userNameid":"25"
    
        ]).responseJSON{(responseData) -> Void in
            if((responseData.result.value != nil)){
    
                // let jsonData = JSON(responseData.result.value)
                HUD.hide();
    
                if((responseData.result.value != nil)){
                    let swiftyJsonVar = JSON(responseData.result.value!)
    
                    if let resData = swiftyJsonVar["loginNodes"].arrayObject {
                        self.arrRes = resData as! [[String:AnyObject]]
                    }
    
                    if self.arrRes.count > 0 {
                        self.tableView.reloadData()
                    }
    
                }
            }
         }
    
      }
    
  5. 使用类似

    将数据设置为表格视图
       override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    
        return arrRes.count
    }
    
    
    
      override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
         let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! Agent_Account_Balance_Cell
    
            cell.namelabel.text = arrRes[indexPath.row]["name"] as? String
    
           return cell
         }