2016-11-02 9 views
0

こんにちは、私の質問はjsonオブジェクトに関連しています。私はこのリンク "http://ip-api.com/json"を持っていて、このリンクはあなたのIPアドレスの詳細を与えます。私は迅速に3このjsonファイルからIPアドレスを印刷する必要があります。私は非常に新しい私の質問は基本的なかもしれないが、私は私のプロジェクトを整理するためにいくつかの助けが必要です。私は以下のようにしています。スウィフトでJsonオブジェクトを解析する方法3

let requestURL: NSURL = NSURL(string: "http://ip-api.com/json")! 

    let urlRequest: NSMutableURLRequest = NSMutableURLRequest(url: requestURL as URL) 
    let session = URLSession.shared 
    let task = session.dataTask(with: urlRequest as URLRequest) { 
     (data, response, error) -> Void in 

     let httpResponse = response as! HTTPURLResponse 
     let statusCode = httpResponse.statusCode 

     if (statusCode == 200) { 
      print("Everyone is fine, file downloaded successfully.") 

      do{ 

       let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as! [String:AnyObject] 

       if let stations = json["city"] as? [[String: AnyObject]] { 



        for station in stations { 

         if let name = station["regionName"] as? String { 

         self.names.append(name) 
         print("this is query\(name)") 

         } 
         else{ 
         print ("no ip address is found") 
        } 

        } 

       } 

      } 
      catch { 
       print("Error with Json: \(error)") 
      } 

     } 
    } 

    task.resume() 

多くのことに感謝します。

答えて

0

IPアドレスは、JSONのトップレベルのキーqueryの値である

let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as! [String:Any] 
if let query = json["query"] as? String { 
    print(query) 
} 

はスウィフト3でJSON辞書の種類は[String:Any]

PSです:あなたは必要ありません。このタスクのURLリクエストは、URLを直接渡し、ネイティブの構造体に使用URL(およびURLRequest

let requestURL = URL(string: "http://ip-api.com/json")! 
... 
let task = session.dataTask(with: requestURL) { 
働いている
+0

どうもありがとうございましたg素晴らしい! –

+0

それから答えを受け入れて、チェックマークをクリックしてください。 (OT:私はAltnauの近くに住んでいます) – vadian

+0

ありがとう私はあなたの答えを受け入れました。 –

関連する問題