2017-02-09 65 views
0

我一直在將UBER搭車API集成到我的應用程序中。我是swift的初學者,但我仍然沒有完全理解從URI解析JSON/Dictionary等的概念。當我預訂尤伯杯我得到這樣如何解析來自URI的2個響應中的字典

{"status":"processing","product_id":"28d5215d","destination":{"latitude":10.0216,"longitude":76.27394},"driver":null,"pickup":{"latitude":10.01319,"longitude":76.27691},"request_id":"5aa6fe30-9eed-4f19-8a8f-c0ed8aa1bfae","location":null,"vehicle":null,"shared":false} 

響應然後,當駕駛員接受我的請求,我從同dataRequestWithURL這樣的反應。我通過在響應中調用相同的dataTask來做到這一點,直到驅動程序接受它爲止。

{"status":"accepted","product_id":"6fd04ea","destination":{"latitude":10.0216,"eta":8,"longitude":76.27394},"driver":{"phone_number":"+919562117444","rating":4.62,"picture_url":"https:\/\/d1w2poirtb3as9.cloudfront.net\/token.jpeg","name":"FULL NAME","sms_number":null},"pickup":{"latitude":10.01319,"eta":5,"longitude":76.27691},"request_id":"5aa6fe30-9eed-4f19-8a8f-c0ed8aa1bfae","location":{"latitude":10.0062228,"bearing":249,"longitude":76.2780944},"vehicle":{"make":"Maruti Suzuki","picture_url":null,"model":"Ritz","license_plate":"LICENSE#"},"shared":false} 

如何根據條件解析此問題。

這是我現在的代碼。

if let dict = (try? NSJSONSerialization.JSONObjectWithData(data!, options: [])) as? [String: AnyObject], 
       let status = dict["status"] as? String, 
       let driver = fareDict["driver"] as? [String:AnyObject] { 
        do 
        { 
        //assign the value and update UI 

        } catch let error { 
         print("OK") 
        } 


       } 

回答

1

如果我正確理解你,你只想在騎車被接受時解析字典嗎?

如果是這樣,你可以做到以下幾點:

//MARK : Check if rider has accepted the ride 
       if let dict = (try? NSJSONSerialization.JSONObjectWithData(data!, options: [])) as? [String: AnyObject], 
        let status = dict["status"] as? String{ 
        if status == "accepted" 
        { 

         print("Accepted") 


        } 
        else 
        { 
        self.getUberRideLive() 

        } 


       }