如何通过 Alamofire 和 SwiftyJSON 在 UIViewController 中从根目录使用 JSON 对象
Posted
技术标签:
【中文标题】如何通过 Alamofire 和 SwiftyJSON 在 UIViewController 中从根目录使用 JSON 对象【英文标题】:How to use JSON objects from root in UIViewController with Alamofire and SwiftyJSON 【发布时间】:2017-09-22 12:18:17 【问题描述】:我想用 Alamofire 和 SwiftyJSON 解析 JSON。
要解析的 JSON:
"args": ,
"headers":
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "en-GB,en-US;q=0.8,en;q=0.6",
"Connection": "close",
"Cookie": "_gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1",
"Host": "httpbin.org",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
,
"origin": "150.107.254.75",
"url": "http://httpbin.org/get"
我可以访问“args”,但无法访问我的UIViewController
的UILabel
中的“Accept-Encoding”
我在编码方面的尝试:
let Endpoint: String = "http://httpbin.org/get"
Alamofire.request(Endpoint).responseJSON response in
if let json = response.result.value as? Array<Dictionary<String,Any>>
self.arrRes = json as [[String:AnyObject]]
我想在我的UIViewController
的UILabel
中使用“标题”。
【问题讨论】:
根对象不是数组。 【参考方案1】:您正在尝试将 json 转换为数组,但它是字典,试试这个:
let endpoint: String = "http://httpbin.org/get"
Alamofire.request(endpoint).responseJSON response in
if let json = response.result.value as? [String:Any],
let headers = json["headers"] as? [String:Any]
self.label.text = headers["Accept-Encoding"] as? String
【讨论】:
另外,swift中的变量以小写开头以上是关于如何通过 Alamofire 和 SwiftyJSON 在 UIViewController 中从根目录使用 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 objectMapper 和 Alamofire 发布嵌套的 json?
如何通过 Alamofire 和 SwiftyJSON 在 UIViewController 中从根目录使用 JSON 对象
当 Alamofire 请求通过身份验证时,我应该如何注销?
如何使用 RxSwift 和 Alamofire 使用分页?