JSON
Swift

Swift JSON from Web

Way 1

func fetchData2() {
    let jsonUrlString = "https://....."
    URLSession.shared.dataTask(with: URL(string: jsonUrlString)! ) { (data, _, error) in

      if error != nil {
        print(error)
      }

      if let data = data {

        do {
          if let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] {
            let response = json["response"] as? [String: Any]
            let location = response!["location"] as? [[String: Any]]

            for dic in location! {
              print("\(dic["prefecture"]) \(dic["city"])")
            }
          }

        } catch let error as NSError {
          print(error.debugDescription)
        }
      }
    }.resume()
  }

Way 2

func jsonParser(urlString: String, completionHandler: @escaping (_ data: NSDictionary) -> Void) -> Void
{
    let urlPath = urlString
    guard let endpoint = URL(string: urlPath) else {
        print("Error creating endpoint")
        return
    }

    URLSession.shared.dataTask(with: endpoint) { (data, response, error) in
        do {
            guard let data = data else {
                throw JSONError.NoData

            }
            guard let json = try JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary else {
                throw JSONError.ConversionFailed
            }
            completionHandler(json)
        } catch let error as JSONError {
            print(error.rawValue)

        } catch let error as NSError {
            print(error.debugDescription)
        }
        }.resume()

}