我如何从这个数组中快速获取菜单
Posted
技术标签:
【中文标题】我如何从这个数组中快速获取菜单【英文标题】:How do i get menu from this array swift 【发布时间】:2016-08-12 16:14:40 【问题描述】:所以我有这个 JSON
数据 Link 并且我想从中获取菜单项,我正在使用 Alamofire swift。这个我试过了。
Alamofire.request(.GET, url!, headers: headers).responseJSON (response) in
let result = response.result
if response.result.isSuccess
let jsonObj = JSON(result.value!)
if let ff = jsonObj["Items"]["Menus"] as? [String: AnyObject]
print(ff)
【问题讨论】:
当你尝试这个时会发生什么? 【参考方案1】:您的Items
包含Array
而不是Dictionary
,因此您需要像这样访问它的第一个对象。
if let ff = jsonObj["Items"][0]["Menu"] as? [String: AnyObject]
print(ff)
编辑:尝试从jsonObj
获取单独的对象
let jsonDic = jsonObj as! [String: AnyObject]
if let items = jsonDic["Items"] as? [[String: AnyObject]]
if let menu = items[0]["Menu"] as? [String: AnyObject]
print(menu)
注意:密钥是Menu
而不是Menus
。
【讨论】:
我没有打印任何东西 你把Menus
改成Menu
了吗
为什么 Stringg
有 2g ?
对不起,错误设置为数组,检查这一行if let menu = items[0]["Menu"] as? [String: AnyObject]
现在将用字典更正
我建议使用guard let
而不是if let
。此外,您可以将多个 let
s 链接到同一个 if
/guard
语句中。例如,guard let items = jsonDic["Items"] as? [[String: AnyObject]], menu = items[0]["Menu"] as? [String: AnyObject] else return
以上是关于我如何从这个数组中快速获取菜单的主要内容,如果未能解决你的问题,请参考以下文章
将动态数据从数组对象插入到引导模式中 - vanilla javascript