Alamofire 快速接收并解析字符串数组

Posted

技术标签:

【中文标题】Alamofire 快速接收并解析字符串数组【英文标题】:Alamofire receive and parse an array of strings swift 【发布时间】:2017-02-28 05:33:50 【问题描述】:

我得到这样的字符串数组的结果

["India","America","Australia","China","Russia"]

我正在使用 Alamofire 来使用代码获取响应。没有错误,但我得到的结果为空。请帮助解析这个。

sessionManager?.request(strURL, method: method, parameters: params, encoding: encoding , headers: headers).responseJSON  (response) in
   switch response.result 
        case .success:
            let resJson = JSON(response.result.value!)
           success(resJson)
            break
        case .failure(let error):
            failure(error as NSError)
            break
        

    

【问题讨论】:

你在.plist中添加了transportsecurity 是的....我正在使用允许任意加载 然后像let resJson = response.result.value as [String]一样访问 Parsing JSON using the new Swift 3 and Alamofire的可能重复 让 resJson = response.result.value as [String] 谢谢@Anbu.Karthik ....效果很好 【参考方案1】:

试试这个:

if let responseData = response.result.value    
let responsevalue = responseData  as? [String]

【讨论】:

【参考方案2】:

对于任何寻找另一个派生答案的人,只需将这段代码放在Alamofire.request(...) 之后:

.responseJSON(completionHandler:  (response) in

            switch response.result

            case .success(let value):

                // Here is your array of String
                let arrayOfStrings = value as? [String]

            case .failure(let error):

                // Some code when error happens...
                print(error.localizedDescription)

            

        )

【讨论】:

【参考方案3】:

此解决方案使用 SwiftyJSON:

.responseJSON(completionHandler:  (response) in

     switch response.result
     case .failure(let error):
         print(error.localizedDescription)

     case .success(let res):
       let json = JSON(res)
       let res = json["result"]

       var models = [String]()
       if let models1 = company["models"].array 
           for model in models1 
               guard let mod = model.string else  return 
               models.append(mod)
           
       
     
)

【讨论】:

以上是关于Alamofire 快速接收并解析字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

使用 Alamofire 快速解析 JSON 时获取 nil 值

iOS 中的 Alamofire 正在接收字典而不是数组

从 NSMutableDictionary 到字符串数组的 Alamofire 结果:Anyobject

Json 快速生成字符串数组

使用 Alamofire 和 SwiftyJSON 正确解析具有多个对象的 JSON 数组

如何使用新的 Swift 3 和 Alamofire 解析 JSON(字典和数组)