如何在swift 3中解析Json对象

时间:2016-11-02 10:47:35

标签: ios json swift swift3

您好我的问题与json对象有关。我有这个链接“http://ip-api.com/json”,此链接提供了您的IP地址的详细信息。我只需要在swift 3中从这个json文件中打印IP地址。我很新可能是我的问题是基本但我需要一些帮助来整理我的项目。所以我已经完成了下面的工作。

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()
非常感谢提前。

1 个答案:

答案 0 :(得分:1)

IP地址是JSON

顶层的密钥Setinterval的值
query

在Swift 3中,JSON字典的类型为let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as! [String:Any] if let query = json["query"] as? String { print(query) }

PS:您不需要此任务的网址请求,直接传递网址并使用原生结构[String:Any](和URL

URLRequest