Ios 在swift4中将JSONresponse转换为NSDATA或NSDICTIONARY

Ios 在swift4中将JSONresponse转换为NSDATA或NSDICTIONARY,ios,swift,swift4,nsjsonserialization,Ios,Swift,Swift4,Nsjsonserialization,我从swift中的一个公共测试api得到一个响应,作为JSONarray: func getFlightData(airportCode: String, minutesBehind: String, minutesAhead:String){ let securityToken: String = "Basic YWFnZTQxNDAxMjgwODYyNDk3NWFiYWNhZjlhNjZjMDRlMWY6ODYyYTk0NTFhYjliNGY1M2EwZWJiOWI2ZWQ1ZjYw

我从swift中的一个公共测试api得到一个响应,作为JSONarray:

func getFlightData(airportCode: String, minutesBehind: String, minutesAhead:String){
    let securityToken: String = "Basic YWFnZTQxNDAxMjgwODYyNDk3NWFiYWNhZjlhNjZjMDRlMWY6ODYyYTk0NTFhYjliNGY1M2EwZWJiOWI2ZWQ1ZjYwOGM="
    var headers: HTTPHeaders = [:]
    headers["Authorization"] = securityToken
    let parameters: Parameters = ["city": airportCode, "minutesBehind" : minutesBehind, "miutesAhead" :minutesAhead]
            Alamofire.request("https://api.qa.alaskaair.com/1/airports/"+airportCode+"/flights/flightInfo", parameters: parameters, headers: headers).responseJSON { (response) in
        print(response)

    }
我在swift4中使用了almofire来实现此操作

我应该将此JSONArray转换为NSData还是NSDictionary?怎么做?
我必须使用jsonseleralization吗?

您可以使用以下方法来实现这一点


您已经使用Alamofire作为网络请求程序,因此无需将响应对象转换为JSON对象或数据对象。库本身将提供给已解析的JSON对象。因此,请检查下面的示例代码以检查JSON对象

    let urlString = "https://......"
    let securityToken: String = "Basic YWFnZTQxNDAxMjgwODYyNDk3NWFiYWNhZjlhNjZjMDRlMWY6ODYyYTk0NTFhYjliNGY1M2EwZWJiOWI2ZWQ1ZjYwOGM="
    var headers: HTTPHeaders = [:]
    headers["Authorization"] = securityToken
    let parameters: Parameters = ["city": 100, "minutesBehind" : 60, "miutesAhead" :0]
    Alamofire.request(urlString, method: .get, parameters: parameters, encoding: JSONEncoding.default, headers: headers).validate().responseJSON { (response) in
        if let jsonObject = response.result.value{
            print("response.result.value \(String(describing: jsonObject))")
        }

        if let jsonObject = response.value{
            print("response.value \(String(describing: jsonObject))")
        }
    }

如果let result=response.result.value{let JSON=result as!NSDictionary print(JSON)}给出SIGABRT错误。另外,我应该将其转换为NSDATA还是NSDictionary?我得到一个JSONArray作为对web服务的响应,这是Swift。不要使用
NSData
NSDictionary
NSxxxx
。使用
数据
。使用Swift字典或数组。
    let urlPath: String = BASE_URL + uri

    let url = URL(string: urlPath)!
    let request = NSMutableURLRequest(url: url)
    request.addValue("no-cache", forHTTPHeaderField: "Cache-Control")

    Alamofire.request(url, method: .post, parameters: params, encoding: JSONEncoding.default, headers: [:])
        .responseJSON { response in

            print("S-E-R-V-E-R  C-A-L-L  C-O-M-P-L-E-T-E-D")

            switch response.result {

            case .success:

                if let json = response.result.value {

                    var data = [String: AnyObject]();

                    if let dict = json as? [String: AnyObject]{
                        // Dictionary found
                        data = dict;
                    }
                    else if let list = json as? [AnyObject] {
                        // Array found
                        data = ["data":list as AnyObject];
                    }          
             }

            case .failure(let error):

                print("status code: \(error.localizedDescription)")
                failure(error as NSError);
            }
    }