【问题标题】: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)
            }
        }

    }

【问题讨论】:

  • 当你尝试这个时会发生什么?

标签: ios arrays json swift alamofire


【解决方案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。此外,您可以将多个 lets 链接到同一个 if/guard 语句中。例如,guard let items = jsonDic["Items"] as? [[String: AnyObject]], menu = items[0]["Menu"] as? [String: AnyObject] else {return}
猜你喜欢
  • 2021-01-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-04
  • 2010-12-16
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
  • 2011-05-21
相关资源
最近更新 更多