来自 JSON 数据的 UITableView 部分 swift

Posted

技术标签:

【中文标题】来自 JSON 数据的 UITableView 部分 swift【英文标题】:UITableView sections from JSON data swift 【发布时间】:2016-09-21 09:37:19 【问题描述】:

我有这样的 JSON 数据:

["name":"Rice","Menu":"title":"titl1","name":"Name2","Menu":"title":"title2"]

我想为每对 [id, name] 构建一个包含一个部分的表格视图。部分标题应该是菜单标题,每个部分的唯一单元格应该是名称值。

如何将 JSON 数据解析为数组并使用 array.count 确定必须显示多少部分?

编辑

class Menus 
   private var _name:String!
   private var _title:String!

   var name:String 
      return _name
   

   var title:String 
      return _title
   

   init(nam:String, title:String) 
      _name = nam
      _title = title
   

新编辑

x.forEach 
   if let uw = ($0["name"]).string 
      um.insert(uw)
      if let hru = ($0["Menu"]["title"]).string 
         us.insert(hru)
      
   


for i in um 
   for u in us 
      var men = Menus(nam: i, tit: u)
      self.menus.append(men)
   

【问题讨论】:

【参考方案1】:
var arrData:[[String:AnyObject]]! = [
    ["name":"Rice",
        "Menu":
            [
                "title":"titl1"
        ]
    ],
    [
        "name":"Name2",
        "Menu":
            [
                "title":"title2"
        ]
    ]
]

var arrMenu:[Menus]! = []

override func viewDidLoad() 
    super.viewDidLoad()

    for i in 0..<arrData.count 
        let dish = arrData[i]
        let menu = dish["Menu"] as! [String:String]

        let name = dish["name"] as! String
        let title = menu["title"]

        arrMenu.append(Menus.init(nam: name, title: title!))
    



// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int 
    return arrMenu.count


override func tableView( tableView :UITableView, titleForHeaderInSection section: Int)->String
    let menu:Menus = arrMenu[section]
    return menu.name


override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return 1



override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)

    let menu = arrMenu[indexPath.section]

    cell.textLabel?.text = menu.title

    return cell

【讨论】:

谢谢,我会试试的 我想用一个型号Menu可以用吗? var menus = [Menus]() 非常感谢,我会检查一下 如何将json数据保存到arrData

以上是关于来自 JSON 数据的 UITableView 部分 swift的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 中的第二个视图不会显示来自 JSON 的解析数据

在 Swift 2 和 Xcode 7 中使用来自 youtube 视频的 JSON 数据填充 UITableView

使用 NSDictionary 填充 UITableView,其中包含来自 mysql db 的已解析 JSON 数据

用来自 JSON Request iOS 的字典填充 UITableView

来自 url 的 swift 3 json 无法获取单元格 uitableview

用 JSON 数据填充 UITableView 不起作用