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 值
从 NSMutableDictionary 到字符串数组的 Alamofire 结果:Anyobject