2015-04-23 109 views
-1

我想結合Alamofire和SwiftJSON,但是我遵循的每個教程都不起作用。這裏是我的代碼:SwiftyJson和Alamofire

request(.GET, "http://api.randomuser.me", parameters: nil) 
     .responseJSON { (req, res, json, error) in 
      if(error != nil) { 

      } 
      else { 
       var json = JSON(json!) 
       if let cell = json[0]["results"]["cell"]["registered"].string{ 
        //Now you got your value 
        println(cell) 
       } 
       else 
       { 
        println("error") 
       } 

      } 

    } 

我只想從json數據中獲取手機號碼。 JSON以下列格式返回:

{ 
"results" : [ 
{ 
    "seed" : "85a9f46b169c1d3f", 
    "user" : { 
    "sha256" : "bd60a88fb92ee4b50c51b2e22acd2196e5b1b0317fbbd97d1c554d2437abc577", 
    "cell" : "(699)-992-8562", 
    "phone" : "(810)-927-4340", 
    "version" : "0.5", 
    "SSN" : "140-22-8290", 
    "nationality" : "US", 
    "sha1" : "23a62834c34efdc8fab5e02c47a96d204f18bad7", 
    "registered" : "1289959546", 
    "dob" : "101759680", 
    "picture" : { 
     "large" : "http:\/\/api.randomuser.me\/portraits\/women\/2.jpg", 
     "thumbnail" : "http:\/\/api.randomuser.me\/portraits\/thumb\/women\/2.jpg", 
     "medium" : "http:\/\/api.randomuser.me\/portraits\/med\/women\/2.jpg" 
    }, 
    "location" : { 
     "state" : "mississippi", 
     "street" : "8718 marsh ln", 
     "city" : "las vegas", 
     "zip" : "34685" 
    }, 
    "password" : "molson", 
    "salt" : "SFdoIQnc", 
    "username" : "silverladybug271", 
    "md5" : "8f15f0d67a9e7610312dc8e62c766943", 
    "email" : "[email protected]", 
    "gender" : "female", 
    "name" : { 
     "title" : "mrs", 
     "first" : "felecia", 
     "last" : "andrews" 
    } 
    } 
} 
] 
} 

當我嘗試打印cell時,它返回nil。任何幫助表示讚賞!

回答

3

試試這個:

request(.GET, "http://api.randomuser.me", parameters: nil) 
     .responseJSON { (req, res, json, error) in 
      if(error != nil) { 

      } 
      else { 
       var json = JSON(json!) 
       if let cell = json["results"][0]["user"]["cell"].string{ 
        //Now you got your value 
        println(cell) 
       } 
       else 
       { 
        println("error") 
       } 

      } 

    } 

的問題是,你有正確排序下標:您需要先訪問「結果」的價值關鍵,接下來你需要數組中的第一項,等等。

+0

你真棒!非常感謝! :) –

+1

@ SohilR.Memon [0]在[「結果」之後移動] –

+0

@GoodbyeStackOverflow您是否願意將它放入您的答案中?你的解決方案顯然工作得很好,但是需要花費一些時間才能通過三個「文本牆」來看看這裏發生了什麼。只是簡單的解釋OP出錯了。 – Michal

相關問題